簡體   English   中英

遍歷JSON數組

[英]Iterate through a JSON array

我剛收到一個jQuery AJAX函數調用,現在我在解析返回的值時遇到了麻煩。 我正在使用mysql數據庫並向我的jQuery AJAX函數返回一個php array()echo json_encode($reservationArray);

現在,當我使用簡單的div標簽將其附加到我的頁面時,結果如下:

[{"reservation_id":"3","available":"0","lock":"0","restaurant":"2","date_made":"2013-12-09 18:39:52","date_of":"2014-01-02 00:00:00","time":"08:30:00","guests":"5","user":"0"},{"reservation_id":"4","available":"0","lock":"0","restaurant":"2","date_made":"2013-12-09 18:40:15","date_of":"2014-01-02 00:00:00","time":"08:00:00","guests":"7","user":"0"}]

我相信這是正確的JSON(如果我輸入錯誤,請糾正我)。 我已經嘗試了幾乎所有訪問數據的方法,但不能。 下面是我正在采用的方法,用於構造新的代碼塊,一堆行-每個預留一個(在此示例中,我縮短了字符串)。

編輯:

function my_ajax(rest_id){
    $.ajax({
      url: 'change_restaurant.php',
      type: 'POST',
      data: {'action': 'get-reservations', 'rest_id': rest_id},
      cache: false,
      success: function(json) {
       $.each(json, function(i, item) {
        if(typeof item == 'object') {
        newhtml += '<div>Restaurant Name :'+item.reservation_id+' Reservation Date: '+item.restaurant+'</div>'
        } 
        else {
          return false;
        }
      })

      $('#reservation-table').append(newhtml);

      },
      error: function(xhr, desc, err) {
        console.log(xhr + "\n" + err);
      }
    });

  }

我相信這是正確的JSON(如果我輸入錯誤,請糾正我)。

您收到的JSON似乎不是正確的文檔。 正如Pointy在評論中所說,沒有地方“名稱”或“日期”。

[{
        "reservation_id" : "3",
        "available" : "0",
        "lock" : "0",
        "restaurant" : "2",
        "date_made" : "2013-12-09 18:39:52",
        "date_of" : "2014-01-02 00:00:00",
        "time" : "08:30:00",
        "guests" : "5",
        "user" : "0"
    }, {
        "reservation_id" : "4",
        "available" : "0",
        "lock" : "0",
        "restaurant" : "2",
        "date_made" : "2013-12-09 18:40:15",
        "date_of" : "2014-01-02 00:00:00",
        "time" : "08:00:00",
        "guests" : "7",
        "user" : "0"
    }
]

您需要修改PHP代碼以執行將reservationsrestaurants數據聯接起來的查詢。

您還沒有指示jQuery返回JSON。 它可能被解析為字符串。 注意dataType選項。

function my_ajax(rest_id){
    $.ajax({
      url: 'change_restaurant.php',
      type: 'POST',
      data: {'action': 'get-reservations', 'rest_id': rest_id},
      dataType: "json", // EXPECT JSON
      cache: false,
      success: function(json) {
       $.each(json, function(i, item) {
        if(typeof item == 'object') {
        newhtml += '<div>Restaurant Name :'+item.reservation_id+' Reservation Date: '+item.restaurant+'</div>'
        } 
        else {
          return false;
        }
      })

      $('#reservation-table').append(newhtml);
      ,
      error: function(xhr, desc, err) {
        console.log(xhr + "\n" + err);
      }
    });

  }

暫無
暫無

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

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