2011-02-11 52 views
2

我試圖用jQuery UI的嵌套可排序1.2.1http://mjsarfatti.com/sandbox/nestedSortable它準備一個javascript數組作爲的Javascript JSON數組PHP數組

ret.push({"id": id, "par_id": pid, "title": title, "depth": depth, "left": left, "right": right}); 

我試圖通過一個隱藏字段來發送數據

<input id="menuArray" name="menuArray" type="hidden" value="" />  
$('#submit').click(function(){ 
var ma = $('ol.sortable').nestedSortable('toArray'); 
$("#menuArray").val(ma); 
$('form#target').submit(); 
}); 

然而,當我做

echo '<pre>'; 
print_r($_POST['menuArray']); 
echo '</pre>'; 

我得到的是:

<pre>[object Object],[object Object],[object Object] ...</pre> 

任何解決方案/提示/提示的朋友?

+1

我認爲有一個函數serialize()來轉換數據。 – 2011-02-11 12:52:27

+0

非常類似於這裏提出的問題:http://stackoverflow.com/questions/191881/serializing-to-json-in-jquery – dmcnelis 2011-02-11 13:34:24

回答

2

你實際上並不是JSON編碼任何地方的任何東西。您需要使用JSON.stringify當您設置隱藏輸入值:

$('#submit').click(function() { 
    var ma = $('ol.sortable').nestedSortable('toArray'); 
    $("#menuArray").val(JSON.stringify(ma)); 
    $('form#target').submit(); 
}); 

注意JSON.stringify不被舊版本瀏覽器的支持(如IE 7),你必須包括json2.js完全支持。