Reputation: 232
Am trying to call a PHP file when onclick of a button occurs with some parameters. It is getting executed till alert statement in jsfile.js. After that the ajax part is not getting executed.. Help me out..
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();
}
?>
Upvotes: 5
Views: 133264
Reputation: 374
In your jsfile.js
file, please correct the following points which I have mentioned as comments on the following code.
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,
},
success: function(response) {
document.getElementById("disp").innerHTML = response;
},
error: function(error) {
alert("error" + error);
}
});
}
Upvotes: 7
Reputation: 470
Change it and try
type:"POST" -> method: "POST"
If your jquery version is >= 1.5 use it this way.
$.ajax({
url: "add.php",
method: "POST",
data: { item_id: id},
}).done(function(response) {
......
}).fail(function( jqXHR, textStatus ) {
......
});
Load Jquery Before your JS file.
Upvotes: 0