我是编程新手,我对Ajax并不擅长 我想从Ajax中的php脚本中获取一个值 我发送一个javascript变量到这样的PHP脚本:
$('#deleteSelectedButton').on('click', function () {
if (confirm('Do you want to suppress the messages ?')) {
$.ajax({
type: 'POST',
url: 'suppression-message',
data: {
'checkboxIdArray': checkboxIdArray.toString(),
}
});
return false;
}
});
这发送到以下php脚本,该脚本根据checkboxIdArray中包含的id删除消息:
if (isset($_POST['checkboxIdArray'])) {
$checkboxIdArray = $_POST['checkboxIdArray'];
$str = json_encode($checkboxIdArray);
$tab = explode(",", $str);
$deleteSuccess = true;
foreach($tab as $id)
{
$id = filter_var($id, FILTER_SANITIZE_NUMBER_INT);
if (!$messageModelDb->delete($id)) {
$deleteSuccess = false;
die();
}
}
if ($deleteSuccess === true) {
$message = 'Success';;
} else {
$message= "Error";
}
}
我想将$ message变量返回到我的javascript,以便根据脚本的结果显示消息。
我真的很感激一些帮助...... 谢谢。
答案 0 :(得分:0)
您必须使用成功功能,并在回复中实际包含该消息
$.ajax({
type: 'POST',
url: 'suppression-message',
data: {
'checkboxIdArray': checkboxIdArray.toString(),
},
success : function(response){
// your code or logic
alert(response);
}
});
PHP
if ($deleteSuccess === true) {
$message = 'Success';
} else {
$message= "Error";
}
echo $message;
答案 1 :(得分:0)
$('#deleteSelectedButton').on('click', function () {
if (confirm('Do you want to suppress the messages ?')) {
$.ajax({
type: 'POST',
url: 'suppression-message',
data: {
'checkboxIdArray': checkboxIdArray.toString(),
},
success: function(response){
alert(response);
}
});
return false;
}
});
答案 2 :(得分:0)
使用JavaScript进行的HTTP请求没有什么特别之处。
您可以通过PHP以与任何其他HTTP响应相同的方式在其响应中输出数据。
echo $message;
在JavaScript中,您可以对其进行处理as described in the documentation for jQuery.ajax。
编写一个接受响应内容作为第一个参数的函数。
然后在.ajax返回的jqXHR对象上调用done
并传递该函数。
function handleResponse(data) {
alert(data);
}
var jqXHR = $.ajax({
type: 'POST',
url: 'suppression-message',
data: {
'checkboxIdArray': checkboxIdArray.toString(),
}
});
jqXHR.done(handleResponse);
答案 3 :(得分:0)
尝试使用代码获取ajax中的值
<script>
$('#deleteSelectedButton').on('click', function () {
if (confirm('Do you want to suppress the messages ?')) {
$.ajax({
type: 'POST',
url: 'suppression-message',
data: {
'checkboxIdArray': checkboxIdArray.toString(),
}
}).done(function(result)
{
alert(result);
});
return false;
}
});
</script>
这是php代码
<?php
if (isset($_POST['checkboxIdArray'])) {
$checkboxIdArray = $_POST['checkboxIdArray'];
$str = json_encode($checkboxIdArray);
$tab = explode(",", $str);
$deleteSuccess = true;
foreach($tab as $id)
{
$id = filter_var($id, FILTER_SANITIZE_NUMBER_INT);
if (!$messageModelDb->delete($id)) {
$deleteSuccess = false;
die();
}
}
if ($deleteSuccess === true) {
$message = 'Success';;
} else {
$message= "Error";
}
echo $message;
}
?>
答案 4 :(得分:0)
由于jQuery实现了延迟,.done
是实现成功回调的首选方式。您还应该使用失败响应代码实现.fail
方法。