Jquery AJAX与JSON表单值更新

时间:2012-07-23 16:41:31

标签: json jquery asp-classic

我以为我正朝着正确的方向前进。但在某处,信息过载设置在。

简单任务:我希望用户从下拉列表中选择一些内容,并让jquery填充该选择中的表单单元格。选择是向我的ASP脚本发送ID请求,该脚本以JSON格式返回数据。但Jquery根本没有填写表格。

这是我的Jquery。

<script>
$(document).ready( function() {
    $("#list-avail-reps").change( function() {
        var rep_id = $(this).val();
        var datastring = "ID="+rep_id;
    $.ajax({
        type: "GET",
        data: datastring,
        dataType: "json",
        url: "sales-reps.asp",
        success: function(data) {
            var rep_name=json.rep_name
            var rep_cell=json.rep_cell
            var rep_email=json.rep_email
            var rep_branch=json.rep_branch
            var branch_id=json.branch_id
            $("#rep_name").val(rep_name);
            $("#rep_cell").val(rep_cell);
            $("#rep_branch").val(rep_name);
            $("#rep_email").val(rep_email);
            $("#rep_active").val('1');
            $("#rep_login_ID").val(rep_id);
            $("#branch_ID").val(branch_ID);
        }
    });//end ajax command
    }); //end of listener
});//end document function
</script>  

我的JSON输出如下:

[
{
"rep_name":"Name here",
"rep_cell":"Number here",
"rep_branch":"More info",
"rep_email":"email here",
"branch_id":"5"
}
]

对此的任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

您将返回一组对象。要访问这些值,您需要先选择数组的第一个索引:

var rep_name=data[0].rep_name
var rep_cell=data[0].rep_cell
var rep_email=data[0].rep_email
var rep_branch=data[0].rep_branch
var branch_id=data[0].branch_id

此外,您将被退回data而不是json

答案 1 :(得分:0)

您应该使用data代替json

示例

data.rep_emailjson.rep_email

返回的数据似乎是一个数组。因此,您需要迭代数组(或假设索引为0)。

示例

var rep_email = data[0].rep_email

for (var i = 0; i < data.length; i++) {
    var rep_email = data[i].rep_email;
}

答案 2 :(得分:0)

var obj = JSON.parse(data); var rep_name = obj [0] .rep_name