将json的json返回值放在一个或多个文本框

时间:2015-04-23 08:59:53

标签: javascript ajax

$('select[name=\'service_id\']').bind('change', function() {

    service_id = $('select[name=\'service_id\']').val();

    $.ajax({

        url: 'myajaxfile.php&service_id=' +  service_id,
        dataType : 'json',
        success: function(json) {

            var max_use = json.max_use;
            var used = json.used;
            var amount = json.amount;

            $('input[name=\'max_use\']').val(max_use);
            $('input[name=\'used\']').val(amount);

        }
    });
});

以上是我的一段代码。我想要的是将json结果中的值绑定到两个或多个未发生的文本框。 json结果类似于[{"max_use":"0","period":"30","amount":"99"}],这是非常正确的。在做一个警告数量时,它表示未定义。如果指出问题是什么,会有很大的帮助吗?我尝试在stackoverflow上搜索,但发现没有完美的解决方案。感谢。

3 个答案:

答案 0 :(得分:4)

尝试

var t = JSON.parse(json);

 var max_use = t[0]["max_use"];
 var used = t[0]["used"];
 var amount = t[0]["amount"];

答案 1 :(得分:3)

你的json是一个包含对象的数组。所以你必须改变json,或者访问像这样的对象属性:

var max_use = json[0].max_use;
var used = json[0].used;
var amount = json[0].amount;

在你的情况下适当的json看起来像那样:

{"max_use":"0","period":"30","amount":"99"}

没有[]

答案 2 :(得分:1)

结果是一个数组,你的值为0索引,所以使用如下

result  = [{"max_use":"0","period":"30","amount":"99"}][0]

获取如下

result.max_user
result.period
result.amount

result["max_user"]
result["period"]
result["amount"]