Olen luonut sivun nimeltä functioncalling.php, joka sisältää kaksi painiketta, Submit ja Insert. PHP:n aloittelijana haluan testata, mikä funktio suoritetaan, kun painiketta napsautetaan. Haluan, että tulostus tulee samalle sivulle. Niinpä loin kaksi funktiota, yhden kummallekin painikkeelle. Functioncalling.php:n lähdekoodi on seuraava:
<!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.";
}
?>
Ongelma tässä on se, että en saa mitään tulostetta sen jälkeen, kun jotakin painiketta on napsautettu.
Missä tarkalleen ottaen olen menossa pieleen?
Napin napsautukset ovat asiakaspuolella, kun taas PHP suoritetaan palvelinpuolella, mutta voit saavuttaa tämän käyttämällä Ajaxia:
$('.button').click(function() {
$.ajax({
type: "POST",
url: "some.php",
data: { name: "John" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
});
PHP-tiedostossasi:
<?php
function abc($name){
// Your code here
}
?>
Et voi kutsua PHP:n toimintoja, kuten painikkeen napsauttamista, HTML:stä. Koska HTML on asiakkaan puolella, kun taas PHP toimii palvelimen puolella.
Joko sinun täytyy käyttää Ajaxia tai tehdä se kuten alla olevassa koodinpätkässä.
<?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.";
}
?>.
Sinun on lähetettävä lomakkeen tiedot ja tarkistettava sitten, onko sopivaa painiketta napsautettu.
HTML:n onclick
-attribuutti kutsuu JavaScript-funktioita, ei PHP-funktioita.