把php脚本的json结果放到divs jQuery中

时间:2014-01-04 16:13:40

标签: javascript php jquery json

我有两个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>

任何帮助都将不胜感激。

3 个答案:

答案 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(...)