【发布时间】:2018-09-06 17:42:37
【问题描述】:
简介
我正在使用 json、ajax 和 php 进行 datatables.net jquery 服务器端处理。我可以单击行按钮并从数据库中删除行。但是,页面永远不会使用 ajax.reload() 刷新页面;
项目链接 https://databasetable-net.000webhostapp.com/
问题
这段代码:
console.log("success function data reached");
似乎永远无法到达。是什么原因造成的?
我没有错误,表正确地从数据库中删除,这就是我卡住的原因。 datatables.net 上的一切似乎都很好,我很可能有 php 问题?
Index.php
<script type="text/javascript">
$(document).on('click','.delete_btn',function (){
var id = $(this).attr("id").match(/\d+/)[0];
var del_id = $('#example').DataTable().row( id ).data();
var del_id = del_id[0];
console.log(del_id[0]);
$.ajax({
type:'POST',
url:'delete.php',
dataType: 'json', //This says I'm expecting a response that is json encoded.
cache: false,
data: { 'del_id' : del_id},
success: function(data){
console.log("success function data reached");
if(data=='result_ok'){ //You are checking for true/false
//document.location.reload(true);
alert(data);
table.ajax.reload();
}else{
console.log('The row was not deleted.');
}
}
});
});
</script>
删除.php
<?php
$del_id = $_POST['del_id'];
$stmt = $conn->prepare("DELETE FROM employees WHERE id = ?");
$stmt->bind_param('i', $del_id);
$confirmDelete = $stmt->execute();
//header("location: index.php");
if($confirmDelete){ //Check to see if there was an affected row.
echo "result_ok";
}
echo json_encode($confirmDelete);
?>
【问题讨论】:
-
我显然不明白你想要什么
-
它的免费虚拟主机。您应该购买优质服务
-
你为什么使用数组,通常你可以这样做: if($confirmDelete){ echo "result_OK" } 并检查来自ajax调用的返回值:success: function(data){ if (data == 'result_OK') { // 做你想做的事情 } else { // 做一些错误的事情 } }
-
ok 会尝试你的方式。该数组方法来自此人的答案(可能是错误的)stackoverflow.com/questions/51923576/…
-
尝试查看从 ajax 返回的内容只是警报数据:成功:函数(数据){警报(数据)}。 data 包含来自 php 脚本的结果,无需编码或使用数组,您也可以通过单击 php 文件从网络选项卡中使用开发工具查看返回值
标签: php jquery ajax datatables