2016-05-17 85 views
1

我有一個很大的輸入很大的形式。 另外我有一個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> 

非常感謝。

回答

1

如果您使用表單提交您的數據,請在您的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以同樣的方式學習它;) –