我正在使用jQuery AJAX函数,以便从mySQL数据库中检索数据,而无需刷新页面。我有一切工作正常,我的查询是从我的数据库中检索正确的数据。但是,当根据用户输入无法检索数据时,我很难回复出错信息。我有一个php文件,提供用户界面供用户搜索,它还包含文档头中的以下脚本。
这是我到目前为止: -
<script type="text/javascript">
$(function(){
$('#users').keyup(function(){
var inpvalue= $('#users').val();
});
});
</script>
<script type="text/javascript">
$(function(){
$('#users').keyup(function(){
var inpval=$('#users').val();
$.ajax({
type: 'POST',
data: ({p : inpval}),
url: 'data.php',
success: function(data) {
$('#output_div').html(data);
}
});
});
});
</script>
如果我没有很好地解释自己,我会非常感谢任何帮助。
三江源。
答案 0 :(得分:1)
修改.ajax()调用,以便检测错误情况:
$.ajax({
type: 'POST',
data: ({p : inpval}),
url: 'data.php',
success: function(data) {
$('#output_div').html(data);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
}
});
这只是为了让您入门:有关使用错误处理程序可以执行的操作的更多详细信息,请参阅http://api.jquery.com/jQuery.ajax/。
当然,您可能会从通话中获得良好的HTTP状态,但这种防御性编程将确保。
在浏览器中运行的Firebug之类的工具也可以帮助您检测错误的HTTP状态代码返回。
答案 1 :(得分:0)
在data.php中,您必须在数据无效时输出错误。
答案 2 :(得分:0)
error
的{{1}}设置只有在实际的ajax请求出现问题时才会被调用,就像服务器返回404一样。您必须在json中返回错误并检查它像这样:
$.ajax
然后你会在数据正常的情况下返回正常的json,然后返回错误信息:
$('#users').keyup(function(){
var inpval=$('#users').val();
$.ajax({
type: 'POST',
data: ({p : inpval}),
url: 'data.php',
success: function(data) {
if(!data.error) {
$('#output_div').html(data);
}
else {
// show error
}
}
});
});