我必须发送一个二维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