1

json 経由で取り込まれた新しいデータと jQote を使用して、HTML テーブルを更新しようとしています。

私はかなり単純な jqote テンプレートを持っています:

<script type="text/html" id="template">
    <![CDATA[
        <tr>
            <td><%= this.customer_id %></td>
            <td><%= this.campaign_id %></td>
            <td><%= this.cname %></td>
            <td><%= this.create_date %></td>
            <td><%= this.phone %></td>
            <td><%= this.sname %></td>
            <td><%= this.reminder %></td>
            <td><%= this.appt_date %></td>
            <td><%= this.note %></td>
            <td><%= this.unread %></td>
        </tr>
    ]]>
</script>

そして、ここに私のJSONがあります:

[{
    "customer_id": "2081",
    "campaign_id": "812",
    "cname": "Jeff",
    "create_date": "3 days ",
    "phone": "1111111111",
    "sname": "Massage Appointment",
    "reminder": "0",
    "appt_date": "0",
    "note": "",
    "unread": "2"
}]

そして、ここに私のjQueryがあります:

$.ajax({
    type: 'POST',
    url: 'url/for/json/return',
    dataType: 'text/json',
    data: 'huh',
    success: function(jsondata){
        row = $('#template').jqote(jsondata);
        $('#customers > tbody').html(row); 
    },
 }
});

ajax リクエストは正常に実行され、jsondata には適切なデータが内部に格納されていますが、私の jQote タグはすべて未定義を返します。誰かが私が間違っていることを見ていますか?

4

2 に答える 2

0

Jeff さん、POST 経由で取得した JSONdata変数は単なる文字列です。jQoteに渡す前に、 $.parseJSONで解析する必要があります。もう 1 つの可能性は、既に理解されているように$.getJSON、応答を自動的に解析する jQuery のメソッドを使用することです。

jQote2 と jQuery 1.4.1 以降を使用している場合は、スクリプトを次のように書き直す必要があります。

$.ajax({
    type: 'POST',
    url: 'url/for/json/return',
    dataType: 'text/json',
    data: 'huh',
    success: function(jsondata){
        var data = $.parseJSON(jsondata);
        // Call the "substitute HTML" convenience method
        $('#customers > tbody').jqotesub('#template', data);
    }
});

の説明については$().jqotesubjQote2 リファレンスを参照してください。

于 2011-12-21T08:46:46.513 に答える
0

私がしなければならないことの実例を見つけることができました。私が使用した新しいjQueryは次のとおりです。

var jsondata = $.getJSON('/url/for/json/return/ajax/', function(data) {
    row = $('#template').jqote(data);
    $('#customers > tbody').html(row);
}); 
于 2011-12-20T01:13:54.513 に答える