我有一个模式,当用户单击删除按钮时将显示该模式。一旦他们点击删除按钮,我就会使用 AJAX 提交表单。一切正常,但它不显示我在 PHP 中设置的成功消息。
这是我的 AJAX 代码:
function deleteUser(){
var id = <?php echo $userdetails['id'] ?>;
$.ajax({
type: "POST",
url: 'admin_user.php?id=' + id,
data: $('form.adminUser').serialize(),
error: function(e){
alert(e);
},
success: function () {
// This is empty because i don't know what to put here.
}
});
}
这是 PHP 代码:
if ($deletion_count = deleteUsers($deletions)) {
$successes[] = lang("ACCOUNT_DELETIONS_SUCCESSFUL", array($deletion_count));
} else {
$errors[] = lang("SQL_ERROR");
}
然后我这样调用它:
<div class="col-lg-12" id="resultBlock">
<?php echo resultBlock($errors,$successes); ?>
</div>
当我使用 AJAX 时,它不显示该消息。这在不需要 AJAX 提交表单的其他页面上效果很好。
最佳答案
我认为您对 AJAX 的工作原理感到困惑,您调用的 PHP 脚本不会直接输出到页面,请考虑下面简化的 AJAX 请求生命周期:
Main Page -> Submit Form -> Put form data into array
|
--> Send array to a script to be processed on the server
|
|----> Callback from the server script to modify DOM (or whatever you want to do)
回调有很多,这里我们讨论一下成功
和错误
如果在服务器上找不到您的 PHP 脚本或存在任何其他内部错误,则会返回 error
回调,否则会在 jQuery 中触发 success
回调您可以指定要在回调中接收的数据数组 - 这包含从 PHP 脚本回显的任何数据。
在您的情况下,您应该修改您的 PHP 文件以回显您的数组,这意味着如果发出成功的请求,则 $successes
或 $errors
数组为回显到 AJAX 调用的数据参数
if ($deletion_count = deleteUsers($deletions)) {
$successes[] = lang("ACCOUNT_DELETIONS_SUCCESSFUL", array($deletion_count));
echo $successes;
} else {
$errors[] = lang("SQL_ERROR");
echo $errors;
}
然后,您可以通过将对象记录到控制台来测试您收到的对象:
success: function(data) {
console.log(data);
}
关于javascript - AJAX 成功后回显 PHP 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28706389/