我必須發送一個二維JavaScript數組到PHP頁面。 的確,我正在製作一個表單構建器,用戶可以在其中添加或刪除字段。
這些字段使用JavaScript(jQuery)添加(或刪除)。當用戶完成並點擊「發佈」按鈕時,我必須獲取所有相關字段並將它們發送到PHP頁面,該頁面可以用它構建一個真實的表單。
我找到了一種方法來做到這一點,但我敢肯定它不是很乾淨:JavaScript二維數組到PHP
addedFields = new Array();
$("#add-info .field").each(function() {
addedFields.push(new Array($(this).find('.name').val(), $(this).find('.type').val(), $(this).find('.size').val()));
});
基本上,「.field
」類對象是<tr>
和「.name
」,「.type
」和「.size
」對象是輸入。
所以我得到的[name, type, size]
一個數組,然後我把它轉換成使用
addedFields = addedFields.join(";");
最後,我去PHP形成這樣的字符串;
document.location.href = "create.php?addedfields=" + addedFields;
關於PHP代碼,創建使用explode()
函數PHP數組:
$addedFields = explode(";", $_GET['addedfields']);
,然後我再次使用它的每個元素的陣列中:
foreach ($addedFields as $field) {
$field = explode(",", $field);
echo "<li>Field with name : '$field[0]', of '$field[1]' type and with a size of $field[2]</li>";
}
所以它的作品,但它似乎很髒......
'window.JSON'不是跨瀏覽器的。 – Tgr 2010-05-06 13:41:25
真實故事,所以簡單的if(typeof(window.JSON)==='object')應該有所幫助。如果它不可用,請改爲使用JavaScript JSON解決方案。 – jAndy 2010-05-06 14:44:37