我正在尝试使用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标签都返回undefined。有谁看到我做错了什么?
答案 0 :(得分:0)
我能够找到一个我需要做的工作示例。这是我使用的新jQuery:
var jsondata = $.getJSON('/url/for/json/return/ajax/', function(data) {
row = $('#template').jqote(data);
$('#customers > tbody').html(row);
});
答案 1 :(得分:0)
Jeff,通过POST获取的JSON data
变量只是一个字符串。在将其移交给jQote之前,您需要使用$.parseJSON对其进行解析。另一种可能性 - 就像你已经想到的那样 - 是使用jQuery的$.getJSON
方法自动解析响应。
如果你正在使用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);
}
});
有关$().jqotesub
的说明,请查看jQote2 reference。