2013-11-23 70 views
1

如何在JavaScript中訪問此json數據。 當我提醒它的結果是undefined

這裏是jQuery代碼

$.ajax({ 
    type: "POST", 
    url: "frmMktHelpGridd.php", 
    data: { 
     labNo: secondElement 
    }, 
    dataType: "json", 
    beforeSend: function() { 
     // Do something before sending request to server 
    }, 
    error: function (jqXHR, textStatus, errorThrown) { 
     alert('error has occured'); 
     alert(errorThrown); 
    }, 
    success: function (data) { 

     //Here is the problem 

     alert(data[0]['Result']); 
    } 
}); 

這是PHP代碼

  $data=array($no); 
    for($i=0;($i<$no && ($row=mysql_fetch_array($result)));$i++) 
    { 
     $data[$i]=array(); 
     $data[$i]['Result']   = $row['Result'];   
     $data[$i]['TestCode']  = $row['TestCode'];   
     $data[$i]['TestStatus']  = $row['TestStatus'];   
     $data[$i]['SrNo']   = $row['SrNo'];    
    } 

    $data1=json_encode($data); 

    echo $data1; 
     exit; 

我已經獨立地測試PHP文件, JSON數據被輸出爲如下:

 [{"Result":"1","TestCode":"22","TestStatus":"0","SrNo":"1"},{"Result":"1","TestCode":"23","TestStatus":"1","SrNo":"2"}] 
+0

側面說明:使用'console.log',而不是'alert'的感謝! – zamnuts

回答

0

你可以通過做訪問你的數據

data[0].Result 

這是一個對象,而不是一個數組。

所以data[0]['Result']這不是正確的方法

編輯: 既然你有更多的對象,你必須做一個循環是這樣的:

$.each(data, function(key, val){ 
    console.log(val.Result); 
    console.log(val.TestCode); 
    //... 
}); 

當你看到類似

{ 
    "foo":"bar", 
    ... 
} 

您可以訪問它與上面相同的方式:

name_of_the_object.foo 

,將有值「欄中的」

+0

仍未定義 –

+0

http://jsfiddle.net/kevincittadini/WGXh4/ - 它必須工作(檢查您的瀏覽器控制檯才能看到結果) –

+0

@sunny我道歉我沒有太在意你的JSON回聲。我只看到一個內部對象,但你得到更多,所以你必須做一個循環,我也會更新我的答案 - 這工作:) http://jsfiddle.net/kevincittadini/WGXh4/2/ –

-1

嘗試添加解析JSON。我已經添加了。現在它可能是工作。

$.ajax({ 
    type: "POST", 
    url: "frmMktHelpGridd.php", 
    data: { 
     labNo: secondElement 
    }, 
    dataType: "json", 
    beforeSend: function() { 
     // Do something before sending request to server 
    }, 
    error: function (jqXHR, textStatus, errorThrown) { 
     alert('error has occured'); 
     alert(errorThrown); 
    }, 
    success: function (data) { 
     //Added parse json 
     var data = $.parseJSON(data) 

     alert(data[0]['Result']); 
    } 
}); 
+0

沒有它給控制檯上的錯誤 –

+0

測試了你的json對象,它顯示警報。請檢查此jsFiddle:http://jsfiddle.net/BcvC3/ –

2
$.ajax({ 
    type: "POST", 
    url: "frmMktHelpGridd.php", 
    data: { 
     labNo: secondElement 
    }, 
    dataType: "json", 
    beforeSend: function() { 
     // Do something before sending request to server 
    }, 
    error: function (jqXHR, textStatus, errorThrown) { 
     alert('error has occured'); 
     alert(errorThrown); 
    }, 
    success: function (data) { 
     //Added parse json 
     var data = jQuery.parseJSON(data) 

     alert(data[0]['Result']); 
    } 
}); 
+0

同樣的解決方案已經給出,但它給控制檯上的錯誤 –

+0

我試着在這個網站上一堆不同的答案..沒有工作;這終於完成了這個訣竅 - 謝謝!在我的情況下,我使用jQuery快捷方式表示法:var data = $ .parseJSON(data); – gnB

相關問題