我有两个div,每个div应该有一个json结果的记录名。
<div class="first"></div>
<div class="second"></div>
我的json文件如下:
[{"Name":"name1","Instruction":"instr"},
{"Name":"name2","Instruction":"instr again"}]
我想输入第一个div的值,第一个记录的'Name'值,第二个div的相同值,但是第二个记录。 我正在使用jQuery:
<script>
$(document).ready(function() {
$.post("data/result.php",
function(data) {
//alert("Data: " + data);
$('div.first').append(data.Name); //data.Name returns undefined
}
);
});
</script>
任何帮助都将不胜感激。
答案 0 :(得分:0)
就你使用post for ajax call而言,数据以json字符串形式返回,执行此操作:
$(document).ready(function() {
$.post("data/result.php",
function(data) {
data = JSON.parse(data);
$('div.first').append(data[0].Name);
$('div.second').append(data[1].Name);
}
);
});
答案 1 :(得分:0)
如前所述,您需要将结果解析为json。您可以在jquery中使用内置解析器。像这样:
<script>
$(document).ready(function() {
$.ajax({
url: 'data/result.php',
type: 'POST',
dataType: 'json',
success : function (data) {
$('div.first').append(data[0].Name);
}
});
});
</script>
答案 2 :(得分:0)
首先,您可以为数据类型提供请求:
$.post('data/result.php',function(data) { },'JSON');
如果您没有发布任何信息,为什么不使用$ .get? (它的语法与btw相同)
$.post('data/result.php',function(data) {
var $first = $('div.first'),
$second = $('div.second');
$first.text(data[0].Name);
$second.text(data[1].Name);
},'JSON');
此外,如果您使用 .append(..),它将附加到div中已有的内容中。如果这是您的意图,请使用 .append(...)。但是,如果您要替换它的内容,即使它是空的,请使用 .text(...)或 .html(...)