0

我正在使用 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>

任何帮助将不胜感激,对不起,如果我没有很好地解释自己。
谢谢你。

4

3 回答 3

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 状态代码返回。

于 2012-04-09T15:19:01.663 回答
0

在 data.php 中,当数据无效时,您必须输出错误。

于 2012-04-09T15:09:44.710 回答
0

仅当实际的 ajax 请求出现问题(例如服务器返回 404)时,才会调用error设置。您必须在 json 中返回错误并像这样检查它:$.ajax

$('#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
              }
        }
    });
});

然后,当数据正常时,您将返回正常的 json,然后针对错误返回类似以下内容:

{"error": "Oh NOES!"}

于 2012-04-09T15:22:54.380 回答