从Ajax返回值

时间:2017-10-20 16:00:11

标签: javascript php ajax

我是编程新手,我对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,以便根据脚本的结果显示消息。

我真的很感激一些帮助...... 谢谢。

5 个答案:

答案 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方法。