J'ai créé une page appelée functioncalling.php qui contient deux boutons, Submit et Insert. En tant que débutant en PHP, je veux tester quelle fonction est exécutée lorsqu'un bouton est cliqué. Je veux que la sortie soit sur la même page. J'ai donc créé deux fonctions, une pour chaque bouton. Le code source de functioncalling.php est le suivant :
<!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.";
}
?>
Le problème est que je n'obtiens aucune sortie après avoir cliqué sur l'un des boutons.
Où est-ce que je me trompe exactement ?
Les clics de bouton sont côté client alors que le PHP est exécuté côté serveur, mais vous pouvez y parvenir en utilisant [Ajax][1] :
$('.button').click(function() {
$.ajax({
type: "POST",
url: "some.php",
data: { name: "John" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
});
Dans votre fichier PHP:
<?php
function abc($name){
// Your code here
}
?>
Vous ne pouvez pas appeler des fonctions PHP comme cliquer sur un bouton à partir de HTML. Parce que le HTML est du côté client alors que PHP fonctionne du côté serveur.
Vous devez soit utiliser Ajax, soit faire comme dans l'extrait de code ci-dessous.
<?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.";
}
?>.
Vous devez envoyer les données de votre formulaire et ensuite vérifier si le bouton approprié a été cliqué.
L'attribut onclick
en HTML appelle des fonctions JavaScript, pas des fonctions PHP.