Ho creato una pagina chiamata functioncalling.php che contiene due pulsanti, Submit e Insert. Come principiante in PHP, voglio testare quale funzione viene eseguita quando un pulsante viene cliccato. Voglio che l'output arrivi nella stessa pagina. Così ho creato due funzioni, una per ogni pulsante. Il codice sorgente di functioncalling.php è il seguente:
<!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.";
}
?>
Il problema qui è che non ottengo alcun output dopo che uno dei pulsanti viene cliccato.
Dove esattamente sto sbagliando?
I click dei pulsanti sono lato client mentre PHP viene eseguito lato server, ma si può ottenere questo usando Ajax:
$('.button').click(function() {
$.ajax({
type: "POST",
url: "some.php",
data: { name: "John" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
});
Nel tuo file PHP:
<?php
function abc($name){
// Your code here
}
?>
Non puoi chiamare funzioni PHP come cliccare su un pulsante da HTML. Perché l'HTML è sul lato client mentre il PHP gira sul lato server.
O hai bisogno di usare un po' di Ajax o farlo come nello snippet di codice qui sotto.
<?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.";
}
?>.
Devi inviare i dati del tuo modulo e poi controllare il pulsante appropriato che viene cliccato.
L'attributo onclick
in HTML chiama funzioni JavaScript, non funzioni PHP.