从Javascript到PHP的多维数组提交表单
问题描述:
我有一个很大的输入很大的形式。 另外我有一个javascript multidimensional数组。这是一组自定义对象,它们将作为购物车添加和删除。 该数组被定义为本地JS变量。 当我提交表单时,我也需要传递数组,我不知道该怎么做。 这里我留下一个例子,它只是说明性的,因为我的表单和我的类更加复杂。从Javascript到PHP的多维数组提交表单
<SCRIPT LANGUAGE="JavaScript">
var itemList = [];
var CustomClass = function (id, description) {
this.id = id;
this.description = description;
};
function addItem(id, description)
{
var item = new CustomClass(id,description);
itemList.push(item);
}
</script>
<form method="post" action="formSave.php">
<input type="text" name="someInput1">
<input type="text" name="someInput2">
<input type="submit" value="Submit">
</form>
非常感谢。
答
如果您使用表单提交您的数据,请在您的js中输入一个隐藏文本并使用JSON.stringify(data)
,然后在服务器上使用json_decode
在服务器端对其进行解码。
<input id = 'jsValueHolder' style = 'display:none'>
<script>
function loadJSDataBeforeSend(dataToSend){
document.getElementById("jsValueHolder").value = JSON.stringify(dataToSend);
}
loadJSDataBeforeSend(itemList);
</script>
而在服务器端:
<?php
/* other code */
$jsonDataString = ... // get your data from the input
$dataObject = json_decode($jsonDataString);
$dataKeyValueArray = json_decode($jsonDataString, true);
?>
注意如何在json_decode功能附加真正返回一个键值数组,而不是PHP对象。
优秀!不知道弦化法。 谢谢! –
@ martin.softpro以同样的方式学习它;) –