0

jquery.ajax() を使用して db テーブルを検索し、データをページの div に返します。

検索リンクをクリックすると、スクリプトは usrObj を div に返すのに失敗し、メッセージUncaught Error: NOT_FOUND_ERR: DOM Exception 8をスローします。

これは構文エラーが原因であると言われましたか? しかし、私は問題を見ていません...

これが私のコードです:

$(function() {
//hide default articles
$("ul a").click(function(event){
     $(".short_article").addClass("hidden");
}); 

  $('#search-box').submit(function() {
    $.ajax({
        type: 'POST',
        url:  'faq/search.php?',
        data: 'Term=body',
        success: function(jqXHR){
            var usrObj = $.parseJSON(jqXHR);
            $('#load_window').html (usrObj);
            alert ("Search failed"); //no alert displays

        }
    });
    return false;
});

});

<div id="load_window"></div>
4

2 に答える 2

0

コードに 3 つの問題があります。3番目は関連する可能性があります。しかし、最初の 2 つはコードを理解しにくくします。

  • 初め。成功コールバックのヘッダーは次のとおりです: function(data, textStatus, jqXHR)。したがって、このネーミングに従います。そうしないと、コードが混乱します。
  • 2番。サーバー スクリプトからの応答として json を期待する場合は、"dataType: 'json'" オプションを ajax() 呼び出しに追加します。これにより、コールバックがすでに Json オブジェクトである「データ」を受け取ることが保証されます。したがって、parseJSON() には必要ありません。HTML を想定している場合 -- dataType は 'html' である必要があり、すべての json 処理を削除する必要があります。
  • 三番。Json オブジェクトを html() しようとしています。ただし、このメソッドは文字列を想定しています。したがって、html() が少しおかしくなり、例外がスローされる可能性が非常に高くなります。
于 2012-10-04T20:23:16.830 に答える
0

「html」の後のスペースを削除します。

$('#load_window').html (usrObj);

...する必要があります

$('#load_window').html(usrObj);
于 2012-10-04T20:13:39.577 に答える