如何从getJson中提取数据?

时间:2011-09-28 06:22:01

标签: php jquery ajax json

如何提取“数据”的内容并将其加载到表单输入中? 情况是这样的,我有一个数据显示,它被拉出来 数据库表。现在在显示的数据上,我放置了一个“编辑”链接。现在我的问题是, 如何使用这个json的东西,为了让我能够加载数据 点击/编辑输入表格中的数据?

  $(function() {  

    //retrieve comments to display on page  
    $.getJSON("testfile.php?jsoncallback=?", function(data) {  

        //what to code here?
    });  
  }); 

4 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

使用jquery parser解析来自服务器的json,然后将数据放在任何地方

答案 2 :(得分:0)

如果您返回了简单的字段值映射,请按照以下方法执行操作

$.each(data, function(key, val) {
   $('#'+key).val(val);
});

示例数据 -

{
  "name": "name",
  "address": "address"
}

但是如果返回嵌套数据,则需要遍历对象。

答案 3 :(得分:0)

我将输入字段命名为与JSON属性相同。所以,如果我有以下对象:

{
    "foo": "",
    "bar": {
        "baz": ""
    }
}

字段定义为:

<input name="foo" class="jsonItem">
<input name="bar.baz" class="jsonItem">

和JSON成功处理程序将递归填充它们:

$.getJSON("testfile.php?jsoncallback=?", function(data) {  
    function(root) {
        var fillInputs = function(obj, prefix) {
            prefix = prefix ? prefix + '.' : '';
            for (var prop in obj) {
                if (obj.hasOwnProperty(prop)) {
                    var prefixOrName = prefix + prop;
                    var propVal = obj[prop];
                    if (typeof propVal === 'object') {
                        fillInputs(propVal, prefixOrName);
                    }
                    else {
                        $('input.jsonItem[name=' + prefixOrName + ']').val(propVal);
                    }
                }
            }
        };

        fillInputs(root, '');
});

如果要使用id而不是name,请务必转义选择器中的点:

prefix = prefix ? prefix + '\.' : '';
...
$('input.jsonItem#' + prefixOrName).val(propVal);

另外,由于我很懒,上面的函数没有考虑JSON对象中的数组,但这不应该很难添加。