2010-04-15 192 views
0

我的JSON被我的网页识别时遇到了一些麻烦。我已经验证了即时消息从服务器返回的JSON,所以我知道这是正确的,但是我的JavaScript函数没有对它做任何事情。我的更迭功能如下:JSON未被识别

success: function(data) { 
    $('input[name=customer_name]').val(data.name); 
    $('textarea[name=customer_address]').text(data.address); 
    $('input[name=customer_email]').val(data.email); 
    $('input[name=customer_tel]').val(data.tel); 
    $('input[name=user_id]').val(item.id); 
} 

然而字段不与返回的数据重新填充,如果有帮助,我的JSON数据的样本:

{ 
    "name": "Terry O'Toole", 
    "address": "Terrys House\nTerry Street\nTerrysville\nTerrytown\nTT1 6TT", 
    "email": "[email protected]", 
    "tel": "05110000000" 
} 

任何帮助将是赞赏。

[编辑]

扩展Ajax调用:

$.ajax({ 
    url: "<?php echo site_url('user/users/ajax'); ?>", 
    type: 'POST', 
    data: {"userid": item.id}, 
    success: function(data) { 
    $('input[name=customer_name]').val(data.name); 
    $('textarea[name=customer_address]').text(data.address); 
    $('input[name=customer_email]').val(data.email); 
    $('input[name=customer_tel]').val(data.tel); 
    $('input[name=user_id]').val(item.id); 
    } 
}) 
}); 
+0

查看更多代码会很有帮助,因为您发布的内容没有任何问题。你的ajax调用是什么样的? – Pointy 2010-04-15 12:17:55

+0

添加了扩展的ajax。 – richzilla 2010-04-15 12:19:54

+0

''表示PHP代码。这与JavaScript无关:您需要查看* generated *源代码。另外,你使用jQuery? – 2010-04-15 12:22:11

回答

6

我想你正在使用jQuery(从您正在使用的val功能)。你是否指定dataType参数为$.ajax?例如: -

$.ajax({ 
    url: "blah", 
    dataType: "json", 
    success: ... 
}); 

如果不是,它可能无法正确地猜测(也许你不发回正确的内容类型?),你将不得不使用就可以了JSON.parse。但最好A)在响应中设置正确的内容类型,B)使用dataType在代码中表达你的意图。

编辑刚刚看到您的编辑。绝对可以尝试加入dataType

+0

哈得到它。添加数据类型是一种享受。感谢您的帮助 – richzilla 2010-04-15 12:23:06

+2

@richzila:如果这个答案适用于您,请将其勾选为已接受。 – 2010-04-15 12:24:38

+0

@richzila:不用担心,很高兴这是它。 – 2010-04-15 12:29:25