Vous pouvez également utiliser Ajax pour cela, et chaque bouton a attribué une fonction ajax qui appelle ses propres script PHP et vous n'avez même pas besoin de rafraîchir la page ou de rediriger, comme dans cet exemple que j'ai essayé:
HTML:
<input type="submit" value="Make other thing" onclick="ajax_post1();"/>
<input type="submit" value="Make something" onclick="ajax_post2();"/>
<div id="script1Response"></div>
<div id="script2Response"></div>
fonctions Javascript:
// la première fonction
function ajax_post1(){
var hr = new XMLHttpRequest();
// prendre les valeurs des éléments d'entrée HTML que vous souhaitez utiliser
var v1=document.getElementbyId("element1").value;
var v2=document.getElementbyId("element2").value;
// le script traitera les données
var url="php_script1.php";
// la variable qui contiendra les informations pour le script php
var dataVar="var1="+v1+"&var2="+v2;
hr.open("POST", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
// accéder à l'événement onreadystatechange pour l'objet XMLHttpRequest
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var script_response = hr.responseText;
document.getElementById("script1Response").innerHTML = script_response;
}
}
// Envoyer les données à php_script1.php
hr.send(dataVar); // Actually execute the request
document.getElementById("script1Response").innerHTML = "processing...";
}
// la deuxième fonction
function ajax_post2(){
var v1=document.getElementbyId("element1").value;
var v2=document.getElementbyId("element2").value;
var url="php_script2.php";
var dataVar="var1="+v1+"&var2="+v2;
var hr = new XMLHttpRequest();
hr.open("POST", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var script_response = hr.responseText;
document.getElementById("script2Response").innerHTML = script_response;
}
}
hr.send(dataVar);
document.getElementById("script2Response").innerHTML = "processing...";
}
Les fichiers php devront contenir des variables qui stockeront les valeurs envoyées par le paramètre dataVar comme ceci:
$var1_=$_POST['var1']; //the var1 from the dataVar parameter
$var2_=$_POST['var2']; //the var2 from the dataVar parameter
L'exemple je peuvent être trouvés ici: https://www.youtube.com/watch?v=woNQ2MA_0XU.
Dans l'exemple de code ci-dessus, deux boutons d'envoi sont redondants. Les deux effectuent la même action. Corrigez? – Jean
@alertjean, cela dépend du script. Les boutons d'envoi ont des valeurs différentes, donc le script peut dire lequel a été cliqué, et faire quelque chose de différent en fonction de cela. – cjm
Il est généralement plus facile d'utiliser l'attribut 'name' pour différencier les différentes actions. Par exemple. ' 'et' '. De cette façon, vous pouvez associer des noms d'actions simplifiées à des textes réels. C'est aussi le seul moyen de travailler avec des sites multilingues, car la valeur ne sera jamais la même. – Alec