这是 View 页面 js 代码:
$('#insertbarang').on('click',function(){
var form = $('#form_insert_barang').serializeArray();
form.push({name: "key",value:"insertbarang"});
$.ajax({
url:"/ajax/ajax.php",
type:"POST",
data:form,
success:function(msg){
console.log(msg);
alert("success");
},
error:function(msg){
console.log(msg);
alert("error");
}
});
});
这是 ajax 文件:
<?php
include("../pages/mod/connect.php");
$pass = false;
$post = $_POST;
switch ($post['key']) {
case "insertbarang":
$result1 = executeQuery("select qty from msbarang where idbarang='".$post['idbarang']."'");
$row=mysqli_fetch_array($result1);
if($row[0]-$post['qty']>=0){
$row[0]=$row[0]-$post['qty'];
unset($post['key']);
$q = "START TRANSACTION;";
$q .= "INSERT INTO `trbarang` SET idbarang = '".$post['idbarang']."', qty = '".$post['qty']."', harga='".$post['harga']."', status = '".$post['status']."';";
$q .= "Update msbarang set qty='".$row[0]."' where idbarang='".$post['idbarang']."';";
$q .= "COMMIT;";
if($data = executeQuery($q)){
$pass = true;
}
}
break;
default:
break;
}
if($pass){
echo json_encode($data);
}else{
return false;
}
?>
我想从弹出页面提交数据,有成功提醒,但查询不起作用,没有插入数据。
最佳答案
你的PHP代码
if($pass){
echo json_encode($data);
}else{
return false;
}
将始终返回成功的 HTTP 响应,因此 ajax 调用将会成功。
你应该做类似的事情
echo json_encode(array('passed' => $pass, 'data' => $data));
并检查ajax是否成功传递。
还要检查一下$post
中的内容,看来这一段form.push({name: "key",value:"insertbarang"});
将生成 ['name' => 'key', 'value' => 'insertbarang']
而不是 ['key' => 'insertbarang']
因此$post['key']
根本不存在。
关于javascript - PHP POPUP AJAX 查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46286643/