0

ページを更新せずに mySQL データベースからデータを取得するために、jQuery AJAX 関数を使用しています。すべて正常に動作しています。クエリはデータベースから正しいデータを取得しています。ただし、ユーザーの入力に基づいてデータを取得できない場合、エラー メッセージを表示するのに苦労しています。ユーザーが検索するためのユーザー インターフェイスを提供する 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

error設定は$.ajax、サーバーが404を返す場合など、実際の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
              }
        }
    });
});

そして、データが正常なときに通常のjsonを返し、エラーに対して次のようなものを返します。

{"error": "Oh NOES!"}

于 2012-04-09T15:22:54.380 に答える