2016-05-17 13 views
1

i mit vielen Eingängen eine große Form haben. Auch ich habe ein mehrdimensionales Javascript-Array. Es ist ein Array von benutzerdefinierten Objekten, die sie als Einkaufswagen hinzufügen und entfernen. Das Array ist als lokale JS-Variable definiert. Wenn ich das Formular abschicke, muss ich auch das Array übergeben, und ich weiß nicht, wie es geht. Hier gebe ich ein Beispiel, es ist nur zur Veranschaulichung, da meine Form und meine Klassen viel komplexer sind.mit einem mehrdimensionalen Array von Javascript Formular senden an 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> 

Vielen Dank.

Antwort

1

Wenn Sie ein Formular zum Übermitteln Ihrer Daten verwenden, machen Sie eine versteckte Texteingabe und verwenden Sie JSON.stringify(data) in Ihrem js und dekodieren Sie es auf Server mit json_decode Serverseite.

<input id = 'jsValueHolder' style = 'display:none'> 
<script> 
    function loadJSDataBeforeSend(dataToSend){ 
     document.getElementById("jsValueHolder").value = JSON.stringify(dataToSend); 
    } 
    loadJSDataBeforeSend(itemList); 
</script> 

Und auf Server-Seite:

<?php 
    /* other code */ 
    $jsonDataString = ... // get your data from the input 
    $dataObject = json_decode($jsonDataString); 
    $dataKeyValueArray = json_decode($jsonDataString, true); 
?> 

Hinweis, wie man die json_decode Funktion gibt einen Schlüsselwert Array anstatt ein PHP-Objekt wahr hinzufügen.

+0

Excelent! Ich kenne keine Stringify-Methode. Danke !!! –

+0

@ martin.softpro lernte es genauso wie du;) –

Verwandte Themen