我第一次使用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页面的结果(数据)进行分支。
答案 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
}