jQuery AJAX - 基于PHP页面数据的条件成功结果

时间:2014-10-27 03:56:52

标签: javascript php jquery html ajax

我第一次使用jQuery进行AJAX调用并且运行良好。我需要做的最后一个更改是检查调用任何数据库错误的PHP页面的结果,并在需要时显示错误。

这是我当前的Javascript,其中包含一些注释,我希望根据结果进行分支:

<script type="text/javascript">
    $(document).ready(function() {
        $("#storeManager").change(function(){
            var storeManager = $("#storeManager").val();
            $.post('editProject.php', { type: 'storeManager', storeManager: storeManager, id: '1E1DDA14-D2C6-4FC8-BA5F-DBCCC7ABAF7F' }, function(data) {

                // if there was a database error from the editProject.php page it will be returned in this format:
                // Error: Database Error 456
                // If there is an "Error: " string in the result I would like to do the following
                $("#ajaxAlert").addClass("alert alert-danger");
                $("#ajaxAlert").html(data);


                // If there is no "Error: " string in the result I would like to do the following
                $("#storeManagerRow").addClass("success");
                $("#storeManagerRow").removeClass("danger");
                $("#ajaxAlert").hide();

            }).fail(function () {
                // no data available in this context
                $("#storeManagerRow").addClass("danger");
                $("#ajaxAlert").addClass("alert alert-danger");
                //append error to the div using its ID
                $("#ajaxAlert").html(data);

            });
         }); 
    }); 
</script>

我是jQuery和AJAX的新手并且在我去的时候解决问题 - 只是不确定如何根据PHP页面的结果(数据)进行分支。

1 个答案:

答案 0 :(得分:2)

而不是从PHP脚本返回html,而是返回一个JSON对象。

要获得成功的结果,您可以返回data这样的对象:

{
  html: '<p>lorem ipsum</p>'
}

对于有应用程序错误的结果,您可以拥有data对象,如下所示:

{
  error: true,
  html: '<p>Error: Database Error 456</p>'
}

在你的回调中,只需检查是否存在error属性:

if (data.error) {
  $("#ajaxAlert").addClass("alert alert-danger").html(data.html);
  // ...
  return; // stop the execution of this function right here
}