1

html以下のコードは、サーバー内の関数によって返されreturndatafromdb2()た を id を持つテーブルに追加しますresultstable2。関数によって返される htmlreturndatafromdb2()の形式は次のとおりです。

"<tr><td>some text</td><td>more text</td></tr><tr><td>some text</td><td>more text</td></tr><tr><td>some text</td><td>more text</td></tr>"

コードでわかるように、.load()jquery を使用しhtmlてサーバーから を取得し、テーブルに追加しています。ただし、使用しているコードは、テーブルに追加するのではなく、テーブル内の既存の行を置き換えます。.load()jQuery関数を使用して既存の行に行を追加し、それらを置き換えないようにするにはどうすればよいですか?

.load()関数から受け取った html を何らかの変数に割り当てることができれば、たとえばnewhtmlのようなことができます$(newhtmltext).appendTo('#resultstable2').load()しかし、取得したhtmlを変数に代入する方法や、文字列として使用する方法がわかりません。

コード:

jqueryでテーブルを作成

<p>Method 2</p>

    <table id="resultstable2">
        <tr>
            <th>Grade</th>
            <th>Price</th>
        </tr>
    </table>

<button id="b2">Execute returndatafromdb2()</button>

<script type="text/javascript">

    $.ajaxSetup({
        cache: false
    });


    var getdata2 = function(){
        var loadurl2 = "{{=URL('default', 'returndatafromdb2')}}";
        $('#resultstable2').load(loadurl2));
    };

    $('#b2').click(getdata2);

</script>
4

3 に答える 3

3

関数でそれを行う方法はありませんload()。通常の ajax 呼び出しを使用して、独自のコールバック関数を作成する必要があります。このようなもの:

var getdata2 = function() {

    var loadurl2 = "{{=URL('default', 'returndatafromdb2')}}";
    $.get(loadurl2,function(data){
        $('#resultstable2').append(data);   
    },'html');

};

$('#b2').click(getdata2);
于 2012-08-08T15:46:17.477 に答える
1

append代わりに使用するだけですload()

var getdata2 = function() { 
    var loadurl2 = "{{=URL('default', 'returndatafromdb2')}}";
    $.get(loadurl2,function(data){
        //Here goes the append :-)
        $('#resultstable2').append(data);   
    },'html');
};

$('#b2').click(getdata2);
于 2012-08-08T15:49:10.737 に答える
0
jQuery.get( loadurl2 ,'', function(d){

$('#resultstable2').append(d);

} )
于 2012-08-08T15:46:09.650 に答える