1

から最初の行の結果を取得した後、各メソッドJSON arrayを使用してすべての結果を出力する必要があります。jquery

これが私の構文です

 $(document).ready(function () {

    $("#btnsearch").click(function() {
    valobj = $('#search_box').val();
    $.getJSON("search.php", { q : valobj }, function(data,result){
        //show result from database
        $.each(data.content, function() {
            $('.toprightsec').append("Title" + data.content[0].title)
                        .append("Intro" + data.content[0].intro_text);
        });

        //end show result
    }, JSON);
});

data.content[0]、ループのみで最初の行を表示しています。しかし、データ自体は変更されていません。data.content[0]行がデータベースのように印刷されるように、.titleを解決するにはどうすればよいですか?

アップデート

関数に微調整を加えた後、リストを使用して結果を表示する新しい機能を追加しました。

構文は次のとおりです

$(document).ready(function () {
    //function to get the result from user-input
    $("#btnsearch").click(function() {
        valobj = $('#search_box').val();
        $.getJSON("search.php", { q : valobj }, function(data,result){
            //show result from database
            $.each(data.content, function(index, value) {
                $("#divContent").show();
                var li = $("<li><a></a><br /><p></p></li>");
                $("#posting").append(li);
                    $("a",li).text(value.title);
                    $("p",li).text(value.intro_text);           
            });

            //end show result
        }, JSON);
    });

問題は、別のキーワードに基づいて表示したい場合に、ユーザーが新しいキーワードを入力した場合にリストが明確になるように、結果をリセットするにはどうすればよいかということです。ブラウザを更新せずに。

ありがとうございました。

更新 2

  $(document).ready(function () {
    //function to get the result from user-input
    $("#btnsearch").click(function() {
        //clear the div
        $("#divContent").html("");

        valobj = $('#search_box').val();
        $.getJSON("search.php", { q : valobj }, function(data,result){
            //show result from database
            $.each(data.content, function(index, value) {
                $("#divContent").show();
                var li = $("<li><a></a><br /><p></p></li>");
                $("#posting").append(li);
                    $("a",li).text(value.title);
                    $("p",li).text(value.intro_text);           
            });  
            //end show result
        }, JSON);
    });
4

2 に答える 2

0

$.each 関数には 2 つの引数があります。1 つ目はインデックスで、2 つ目は値です。

このような:

$.each(data.content, function(index,value) {
   alert(value);
}

それらを変数として使用できます。あなたの場合、各ループは次のように実行されます。

$.each(data.content, function(index, value) {
    $('.toprightsec')
        .append("Title" + value.title)
        .append("Intro" + value.intro_text);
});
于 2013-06-17T11:19:30.320 に答える