2013-07-11 24 views
2

我是codeignitor框架和json中的新成員。我想在用戶點擊一個url時從數據庫中獲取數據,但是我收到一個錯誤。codeignitor中的JSON響應錯誤

我的腳本:

function abc(i) 
{ 
    if(i == 1) 
    { 
    $.ajax({ 
     type: "post", 
     url: "<?php echo base_url('welcome/liststd');?>", 
     data: 'postData='+ i , 
     success: function(json) 
     { 
     var abc = json; 
     document.getElementById("fname").innerHTML=abc[0].fname; 
     } 
    }); 
    } 
} 

Firebug的響應:

[ 
    { 
    "id":"31", 
    "fname":"Darshan", 
     "mname":"D", 
     "lname":"Dave", 
     "std":"1", 
     "marks":"12000", 
     "image":"image31.jpg", 
     "id1":"1", 
     "in_date":"0000-00-00", 
     "upd_date":"2013-07-10" 
    }, 
    { 
     "id":"34", 
     "fname":"Darshan", 
     "mname":"D", 
     "lname":"Dave", 
     "std":"1", 
     "marks":"12000", 
     "image":"image34.jpg", 
     "id1":"1", 
     "in_date":"2013-07-06", 
     "upd_date":"2013-07-09" 
    } 
    ] 

當我提醒jsonsuccess功能它表明我:

[ 
    { 
    "id":"31", 
    "fname":"Darshan", 
     "mname":"D", 
     "lname":"Dave", 
     "std":"1", 
     "marks":"12000", 
     "image":"image31.jpg", 
     "id1":"1", 
     "in_date":"0000-00-00", 
     "upd_date":"2013-07-10" 
    }, 

什麼是我的錯?

+0

非常好問的問題。細節,代碼,你已經完成的一些調試,好東西。對於未來的問題有一點小小的問題:不是「我有一些錯誤」,而是說** **,確切地說,錯誤是。 –

+0

@ T.J.Crowder okey thnx您的回覆... :) – darshan

回答

3

您不解析JSON。將dataType : 'json'添加到ajax調用中。這會告訴jQuery爲你自動解析JSON。

$.ajax({ 
    type: "post", 
    url: "<?php echo base_url('welcome/liststd');?>", 
    data: 'postData=' + i, 
    dataType: 'json', // <----- tell jQuery to parse the JSON 
    success: function (json) { 
     var abc = json; 
     document.getElementById("fname").innerHTML = abc[0].fname; 
    } 
}); 
+0

*「將'dataType:'json''添加到ajax調用」*或者更好的辦法是讓服務器返回正確的Content-Type。 –

+0

是的好點,這也將工作:) – MrCode

+0

@MrCode嘿thnx男人...... :) – darshan

0
try this in your response... 
also in your $.ajax tell jquery to parse json 
dataType: 'json' 
in your response.. 
var response = JSON.parse(json); 
response.fname; 
+0

這只是10分鐘前的答案的複本。另外,請參閱編輯區域旁邊的「如何格式化」框,以及預覽區域,您可以在其中看到您的答案的樣子。 –