2010-04-15 252 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