Vytvoril som stránku s názvom functioncalling.php, ktorá obsahuje dve tlačidlá, Odoslať a Vložiť. Ako začiatočník v PHP chcem otestovať, ktorá funkcia sa vykoná po kliknutí na tlačidlo. Chcem, aby sa výstup zobrazil na tej istej stránke. Preto som vytvoril dve funkcie, pre každé tlačidlo jednu. Zdrojový kód súboru functioncalling.php je nasledujúci:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<form action="functioncalling.php">
<input type="text" name="txt" />
<input type="submit" name="insert" value="insert" onclick="insert()" />
<input type="submit" name="select" value="select" onclick="select()" />
</form>
<?php
function select(){
echo "The select function is called.";
}
function insert(){
echo "The insert function is called.";
}
?>
Problém je v tom, že po kliknutí na niektoré z tlačidiel nedostanem žiadny výstup.
Kde presne robím chybu?
Kliknutia na tlačidlo sú na strane klienta, zatiaľ čo PHP sa vykonáva na strane servera, ale môžete to dosiahnuť pomocou Ajax:
$('.button').click(function() {
$.ajax({
type: "POST",
url: "some.php",
data: { name: "John" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
});
V súbore PHP:
<?php
function abc($name){
// Your code here
}
?>
Z jazyka HTML nemôžete volať funkcie PHP, ako napríklad kliknutie na tlačidlo. Pretože HTML je na strane klienta, zatiaľ čo PHP beží na strane servera.
Buď musíte použiť nejaký Ajax, alebo to urobiť tak, ako v úryvku kódu nižšie.
<?php
if($_GET){
if(isset($_GET['insert'])){
insert();
}elseif(isset($_GET['select'])){
select();
}
}
function select()
{
echo "The select function is called.";
}
function insert()
{
echo "The insert function is called.";
}
?>.
Musíte odoslať údaje formulára a potom skontrolovať príslušné tlačidlo, na ktoré sa kliklo.
Atribút onclick
v HTML volá funkcie JavaScriptu, nie funkcie PHP.