簡體   English   中英

jQuery AJAX檢索對象數組

[英]JQuery AJAX retrieving an Array of Objects

我正在嘗試使用json_encode,以便我的jquery ajax函數可以從我的php腳本中檢索數據,但是我正在嘗試編碼和檢索的數組是一個對象數組

$la_uselessinfo = array();
$lv_cnt = 0;

$uselessinfo = pg_execute($gv_dbconn, "uselessinfo_cur", array());
while($la_row = pg_fetch_row($uselessinfo)) {

    $la_uselessinfo[$lv_cnt]["uinf_idno"] = $la_row[0];
    $la_uselessinfo[$lv_cnt]["uinf_desc"] = $la_row[1];
    $lv_cnt = $lv_cnt + 1;

}

echo json_encode($la_uselessinfo);

我試圖使用jquery ajax函數檢索此

$.ajax({
    url     : 'scripts/phpfunctions.php',
    type    : 'GET',
    data    : {'action':'sel_uselessinfo'},
    success : function(data) {
                  //console.log(data);
                  console.log(data["uinf_desc"][0]);
              },
    error   : function(log) {
                  console.log(log.message);
              }
});

我收到以下錯誤

Uncaught TypeError: Cannot read property '0' of undefined

我無法確定php代碼或jquery代碼是否出錯,檢索對象數組的正確方法是什么?

$.ajax({
    url     : 'scripts/phpfunctions.php',
    type    : 'GET',
    data    : {'action':'sel_uselessinfo'},
    dataType: "json",
    success : function(data) {
                  console.log(data[0]["uinf_desc"]);
                  console.log(data[0]["uinf_desc"]);
              },

它應該是用PHP編寫的data[0]["uinf_desc"]

將您的PHP更改為:

$la_uselessinfo = array();
$lv_cnt = 0;

$uselessinfo = pg_execute($gv_dbconn, "uselessinfo_cur", array());
while($la_row = pg_fetch_row($uselessinfo)) {

    $la_uselessinfo[$lv_cnt]["uinf_idno"] = $la_row[0];
    $la_uselessinfo[$lv_cnt]["uinf_desc"] = $la_row[1];
    $lv_cnt = $lv_cnt + 1;

}

echo json_encode($la_uselessinfo); //$la_uselessinfo is already an array, no need to wrap it again, and doing so causes you to misjudge the depth of your array 

然后將jQuery更改為:

$.ajax({
    url     : 'scripts/phpfunctions.php',
    type    : 'GET',
    data    : {'action':'sel_uselessinfo'},
    success : function(data) {
                  //console.log(data);
                  console.log(data[0]["uinf_desc"]); // this line changed
              },
    error   : function(log) {
                  console.log(log.message);
              }
});

要循環顯示結果,請執行以下操作:

  // sample data var data = [{ "uinf_idno": "1", "uinf_desc": "website db " }, { "uinf_idno": "2", "uinf_desc": "local apache " }] $.each(data,function(i,e){ var uinf_idno = e.uinf_idno; var uinf_desc = e.uinf_desc; $('#result').append('uinf_idno= '+uinf_idno+' and uinf_desc= '+uinf_desc+' <br>'); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="result"></div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM