Ustvaril sem stran functioncalling.php, ki vsebuje dva gumba, Submit in Insert. Kot začetnik v jeziku PHP želim preizkusiti, katera funkcija se izvede ob kliku na gumb. Želim, da se rezultat izpiše na isti strani. Zato sem ustvaril dve funkciji, po eno za vsak gumb. Izvorna koda za functioncalling.php je naslednja:
<!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.";
}
?>
Težava je v tem, da po kliku katerega koli od gumbov ne dobim nobenega izpisa.
Kje točno delam napako?
Klik gumba je na strani klienta, medtem ko se PHP izvaja na strani strežnika, vendar lahko to dosežete z uporabo Ajax:
$('.button').click(function() {
$.ajax({
type: "POST",
url: "some.php",
data: { name: "John" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
});
V datoteki PHP:
<?php
function abc($name){
// Your code here
}
?>
V jeziku HTML ne morete klicati funkcij PHP, kot je klik na gumb. Ker je HTML na strani odjemalca, PHP pa na strani strežnika.
Uporabiti morate Ajax ali pa to narediti tako, kot je prikazano v spodnjem koščku kode.
<?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.";
}
?>.
Objaviti morate podatke iz obrazca in nato preveriti, ali je bil kliknjen ustrezen gumb.