从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对象。

+0

优秀!不知道弦化法。 谢谢! –

+0

@ martin.softpro以同样的方式学习它;) –