Ошибка, назвав функцию php с события onclick

Он перемещает меня следующее:

Я звоню в функцию php с события onclick, моя проблема состоит в том, что функция php работает каждый раз, когда загружается страница, а именно, игнорирует onclick.

<a href="archivo.pdf" onclick="funcion()"/a>
  • Я попытался звоня в функцию, которая находится на странице php.
  • Я попытался звоня в страницу php.
  • Я попытался звоня в функцию javascript и в этой функции будь названный к функции php.

Во всех случаях он перемещает то же самое меня, функция php работает каждый раз, когда загружается страница игнорирует onclick.

$visitas1 = array();
$visitas1 = contVisitas1();

function contVisitas1(){ 

    $archivo = "contador1.txt"; 
    $info = array(); 

    if (file_exists($archivo)){ 
        $fp = fopen($archivo,"r"); 
        $contador = fgets($fp, 26); 
        $info = explode(" ",$contador); 
        fclose($fp); 

        $mes_actual = date("m"); 
        $mes_ultimo = $info[0]; 
        $visitas_mes = $info[1]; 
        $visitas_totales = $info[2]; 
    }else{ 
        $mes_actual = date("m"); 
        $mes_ultimo = "0"; 
        $visitas_mes = 0; 
        $visitas_totales = 0; 
    } 

    if ($mes_actual==$mes_ultimo){ 
        $visitas_mes++; 
    }else{ 
        $visitas_mes=1; 
    } 
    $visitas_totales++; 

    $info[0] = $mes_actual; 
    $info[1] = $visitas_mes; 
    $info[2] = $visitas_totales; 

    $info_nueva = implode(" ",$info); 
    $fp = fopen($archivo,"w+"); 
    fwrite($fp, $info_nueva, 26); 
    fclose($fp); 

    return $info;

}
5
задан 18.01.2016, 17:20
3 ответа

Если ты хочешь выполнить код на сервере, ты должен посылать просьбу одной или другого способа. Чтобы это делать, не переходя с одного сайта на другой в другую страницу (или обновлять ту же самую), используется AJAX. Следовательно, мы должны отличаться между PHP, который работает на сервере, и языке сценариев JavaScript, что работает в стороне клиент (регулирующий, подвижный, tablet...).

Это очень широкая тема, так что я не буду пробовать объяснять это в своей совокупности, но mostraré маленький пример. Чтобы жизнь, использование не осложняются jQuery.get() (я соединил на английском), но да, что возможно делать это без какой-либо библиотеки, если ты хочешь.

HTML

<script>
function ajax() {
    jQuery.get("ajax.php").then(function (respuesta) {
        document.getElementById("resultado").value = respuesta;
    });
}
</script>
<button onclick="ajax()">pulsa</button>
<textarea id="resultado"></textarea>

ajax.php

<?php    
echo '¡Hola, mundo!';

Когда ты нажимаешь кнопку, ему будет послана просьба "GET" в сервер асинхронной формы. Когда он закончится, ответ сервера кладется в <textarea>.

5
ответ дан 24.11.2019, 14:59

Ты перемешиваешь два языка, которые выполняют в различных частях php, работает на сервере, когда производится документ, javascript работает в browser

событие onClick будет называть функцию javascript, которую ты должен программировать в этом языке

если то, что ты хочешь, состоит в том, чтобы в этом моменте он переместил что-то на сервере, ты можешь использовать ajax, чтобы звонить в другой рукописный шрифт pho на сервере, который реализует действие, которое ты желаешь

2
ответ дан 24.11.2019, 14:59

'onclick', событие языка сценариев JavaScript, который работает в браузере, поэтому, если у тебя нет ningГєn mГ©todo, что манипулировал этим событием всегда, будет загружать тебя то, что у тебя есть в href. Я recomendarГ, - в который в href ты ссылался на файл php, что у него есть mГ©todo, и позже загрузи файл.

contVisitas1();

function contVisitas1(){ 

    $archivo = "contador1.txt"; 
    $info = array(); 

    if (file_exists($archivo)){ 
        $fp = fopen($archivo,"r"); 
        $contador = fgets($fp, 26); 
        $info = explode(" ",$contador); 
        fclose($fp); 

        $mes_actual = date("m"); 
        $mes_ultimo = $info[0]; 
        $visitas_mes = $info[1]; 
        $visitas_totales = $info[2]; 
    }else{ 
        $mes_actual = date("m"); 
        $mes_ultimo = "0"; 
        $visitas_mes = 0; 
        $visitas_totales = 0; 
    } 

    if ($mes_actual==$mes_ultimo){ 
        $visitas_mes++; 
    }else{ 
        $visitas_mes=1; 
    } 
    $visitas_totales++; 

    $info[0] = $mes_actual; 
    $info[1] = $visitas_mes; 
    $info[2] = $visitas_totales; 

    $info_nueva = implode(" ",$info); 
    $fp = fopen($archivo,"w+"); 
    fwrite($fp, $info_nueva, 26); 
    fclose($fp); 

    return $info;

}

header("Content-Type: application/octet-stream");

$file = "archivo.pdf";
header("Content-Disposition: attachment; filename=" . urlencode($file));   
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer");            
header("Content-Length: " . filesize($file));
flush(); 
$fp = fopen($file, "r");
while (!feof($fp))
{
    echo fread($fp, 65536);
    flush(); 
} 
fclose($fp); 

<a href="funcion.php">Descargar</a>
1
ответ дан 24.11.2019, 14:59