问题: .ajax()
无法使用onclick
。
当我点击Delete
时,会发生这种情况:
MySql
数据库中的行。id="39"
隐藏元素。index
页。这是我到目前为止所做的:
index.php
档案:
<script type="text/javascript" src="//code.jquery.com/jquery-1.8.3.js"></script>
<span class="delete_test" onclick="del_fn(39)" id="39">Delete</span>
<script>
function del_fn(test_id){
var x = confirm("Are you sure you want to delete?");
if (x)
{
$.ajax({
type:'POST',
url:'test7.php',
data:'delete_id='+test_id,
success:function(data) {
if(data) {
document.getElementById(test_id).style.display = "none";
window.location = 'https://www.example.com';
}
}
});
}
else
{
return false;
}
}
</script>
test7.php
档案:
session_start();
include("connect.php");
$id_delete = mysqli_real_escape_string($db_mysqli,$_POST['delete_id']);
$db_mysqli->query("DELETE FROM table Where id = '$id_delete'");
答案 0 :(得分:1)
我认为问题出在if(data)
部分。
我会做什么:
test7.php
文件中添加一些逻辑,以检查查询是否正确执行以及echo
true
或false
。success
处理程序中检查if(data == 'true')
并在那里继续你的逻辑。这是一个简单的例子:
test7.php
:
if(<check if query went okay here>)
{
echo json_encode(true);
}
else
{
echo json_encode(false);
}
ajax
部分:
$.ajax({
url: path,
type: "POST",
dataType: "json",
data: data,
cache: false,
success: function(response)
{
if(response === false)
{
// something went wrong with the query...
}
else
{
// query seems okay...
}
}
});
有一次我注意到重定向超前于上面的代码。但是,在您的情况下,如果您要重定向用户,为什么需要隐藏元素?无论如何,只有这样你才能确定,我会补充一下:
setTimeout(function () {
window.location = 'https://www.example.com';
}, 1);
希望它有所帮助!