pourquoi ça ne marche pas J'essaie d'appeler un fichier php lorsqu'un clic sur un bouton survient avec certains paramètres. Il est en cours d'exécution jusqu'à la déclaration d'alerte dans jsfile.js. Après que la partie ajax ne soit pas exécutée .. Aidez-moi .. Merci d'avance ..
main.html
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="jsfile.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>
<button onclick="cart(0)"> hi </button>
<p id="disp"></p>
</body>
</html>
jsfile.js
function cart(id1)
{
var id=id1;
alert("enterd "+id);
document.getElementById("disp").innerHTML ="hi";
$.ajax({
url:"/add.php ",
type:"POST",
data:{
item_id: id,
},
success:function(response) {
//document.getElementById("total_items").value=response;
document.getElementById("disp").innerHTML =response;
},
error:function(){
alert("error");
}
});
}
add.php
<?php
if(isset($_POST['item_id']) && !empty($_POST['item_id'])){
//if(count($_POST)>0)
echo "success";
exit();
}
?>
Dans votre fichier jsfile.js, corrigez les points suivants que j'ai mentionnés en tant que commentaires sur le code suivant.
function cart(id1)
{
var id=id1;
alert("enterd "+id);
document.getElementById("disp").innerHTML ="hi";
$.ajax({
url:"/add.php ",
method:"POST", //First change type to method here
data:{
item_id: "id", // Second add quotes on the value.
},
success:function(response) {
document.getElementById("disp").innerHTML =response;
},
error:function(){
alert("error");
}
});
}
Changez-le et essayez
type:"POST" -> method: "POST"
Si votre version de jquery est> = 1.5, utilisez-la de cette façon.
$.ajax({
url: "add.php",
method: "POST",
data: { item_id: id},
}).done(function(response) {
......
}).fail(function( jqXHR, textStatus ) {
......
});
Charger Jquery avant votre fichier JS.