Problem Array von Javascript in PHP

BigR16

Mitglied
Hi Leute ich hab ein Problem mit der Übermittlung eines Arrays von Javascript in PHP.
Sprich ich erstelle das Array in Javascript und will es dann in ein <input>-Element schreiben da dieses mit $_POST weiterübergeben wird. Das Problem liegt dabei das im Input-Element kein Array geschrieben wird sondern ein String.
Hoffe ihr könnt mir helfen!
P.S.: Will nicht unbedingt Ajax oder ähnliches verwenden.
 
Wie könnte das aussehen wenn ich aus einem bestehenden Array ein JSON -Object erstell . Komm mit den Tuts irgendwie nich klar.
 
Das ist einfacher als du vielleicht denkst :)

Das JS zum Codieren findest du hier: http://www.json.org/json2.js

Die PHP-Methode zum Decodieren ist in PHP5 bereits enthalten.

In JS liefert dir
Code:
JSON.stringify(ArrayObjekt)
die nötige String-Repräsentation des Arrays, welche du zum Übermitteln benötigst.

in PHP brauchst du diesen String dann nur per [phpf]json_decode[/phpf] umzuwandeln.

Bsp:
PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; 
                                charset=ISO-8859-1"   />
<meta name="author"             content="doktormolle" />
<meta name="date"               content="2008-11-11"  />
<title>Test</title>
<script type="text/javascript" src="http://www.json.org/json2.js"></script>
<script type="text/javascript">
<!--
arr=['foo','bar',['foobar']];
//-->
</script>
</head>
<body>
<?php
  if(isset($_POST['array']))
    {
      echo '<pre>'.
              print_r(
                json_decode(
                    (get_magic_quotes_gpc())
                      ? stripslashes($_POST['array'])
                      : $_POST['array']
                    ,true
                  ),
              true
            ).'</pre>';
     }
?>
<form method="post" onsubmit="this.array.value=JSON.stringify(arr)">
  <input name="array">
  <input type="submit">
</form>
</body>
</html>
(das json2.js netterweise dort herunterladen und auf dem eigenen Server Platzieren)

Beachte, dass der übermittelte String erst mit stripslashes() behandelt werden muss, sofern der Array Strings enthält und magic_quotes_gpc bei dir auf dem Server an ist.
 
Zuletzt bearbeitet:
Danke, ich habe es aber anders gelöst ohne irgendwie ajax oder json zu benutzen.
Habe einfach den String den ich zurück bekomme in die explode Funktion geschickt und nach nem Komma getrennt und das einfach weitergegeben. Dabei musst ich beachten das ein gelöschtes Element noch vorhanden ist. Dies hab ich dann einfach übersprungen . Und fertig!:D
Musste nur 5 oder 6 Zeilen einfügen, ist zwar nicht die beste Variante aber sie funktioniert.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück