2012-01-05 52 views
1

我正在嘗試從jQuery/Javascript客戶端腳本向服務器端PHP腳本發佈一個對象數組。需要串聯?混淆了從javascript到PHP發佈對象數組的格式數據格式

我仍然對格式感到困惑,表示對象數組數據在到達服務器之前應該在。

我創建一個數組來存儲JSON對象

var jsonObjects = []; 

我個人JSON對象添加到陣列

var jsonObj1 = {}; 
jsonObj1.place = "London"; 
jsonObj1.position = 1; 

jsonObjects.push(jsonObj1); 

var jsonObj2 = {}; 
jsonObj2.place = "Melbourne"; 
jsonObj2.position = 2; 

jsonObjects.push(jsonObj2); 

...等

然後我嘗試後通過該數據阿賈克斯後(伊韋在帖子之前嘗試過串並且也沒有串化嘗試)

例如

//var data = jsonObjects; 
//var data = JSON.stringify(jsonObjects); 

jQuery.ajax({ 
      url: "/drupal/menu_item", 
      type: 'POST', 
      data: data 
      dataType: 'json' 
      }); 
螢火蟲的XHR標籤上

無論哪種方式,只是示出了數據 例如的字符串化版本 [{「place」:「London」,「position」:「2」},{「place」:「Melbourne」,「position」:「2」}]

而不是它看起來像什麼帖子細節看起來像以前一樣,數據分解成參數。當然,除非PHP查找字符串化狀態的數據實際上會工作(?)

我似乎發現如何發送一個json對象數組到PHP應該完成衝突的細節。在執行ajax請求時,數據應該處於什麼狀態? 一)對象 B)對象的數組 三)東西的字符串化陣列另一回事(?)

任何幫助澄清這是非常讚賞:)

感謝,

羅文

回答

0

字符串化的數據只是JS對象的文本表示。因此,您可以對字符串化的JS對象運行json_decode以獲取PHP數據結構。

在另一方面,如果你的對象是簡單的鍵:值那些沒有太多的深度(多維數組),那麼他們可以被作爲查詢字符串並解析成PHP的$_POST/$_GET/$_REQUEST

+0

OK感謝那。 js是否需要用*來表示要發佈到PHP的數據? – Rowan 2012-01-05 17:03:34

+0

那麼,你正在通過HTTP與PHP進行通信。所以是的,無論你發送的是**還是純文本。 – 2012-01-05 17:19:10

+0

嗨,是的,這是有道理的..我想我的困惑是我讀的地方,如果你張貼對象的數組並指定json的數據類型,它會將它轉換爲一個字符串爲你(?) – Rowan 2012-01-05 21:14:57