En passant JSON codé de la variable PHP à Javascript via la POSTE

J'ai un tableau multidimensionnel que je veux envoyer à un script PHP avec un Javascript qui analyse les données JSON et le tracé sur Google Maps. Je suis en train de les simuler à l'aide de formulaires:

<?php
$jsontest = array(
    0 => array(
        'plate_no' => 'abc111',
        'longlat' => array(121.003895,14.631563),
        'info' => 'first item'
        ),
    1 => array(
        'plate_no' => 'abc222',
        'longlat' => array(121.103895,14.731563),
        'info' => 'second item'
        )
    );
$jsonarray = json_encode($jsontest);
?>
<form action="json-target.php" method="post" accept-charset="utf-8">
        <input type="hidden" name="jsonarray" value="<?php echo $jsonarray; ?>" id="jsonarray">
    <p><input type="submit" value="Continue &rarr;"></p>
</form>

json-target.php ressemble à ceci:

<?php
    print "The value of $_POST is ";
    print_r($_POST);
?>

Et la sortie de $_POST est Array ( [jsonarray] => [{ ). Je voulais passer le contenu de la $jsonarray variable à une fonction Javascript (voir la mise à jour ci-dessous).

Mise à JOUR: j'ai aussi un simple Javascript qui est censé analyser la valeur reçue de $_POST et d'afficher la valeur par alert():

<script src="/js/json2.js" type="text/javascript" charset="utf-8"></script> 
<script type="text/javascript" charset="utf-8">
    var json = JSON.parse(<?php echo $_POST['jsonarray'] ?>);
    for (var i = 0; i < json.length; i++) { 
        alert(json[i]); 
     }
</script>

Mais la sortie est mutilé avec des barres obliques inverses.

var json = JSON.parse([{\"plate_no\":\"abc111\",\"longlat\":[121.003895,14.631563],\"info\":\"first item\"},{\"plate_no\":\"abc222\",\"longlat\":[121.103895,14.731563],\"info\":\"second item\"}]);

Ce qui est une meilleure façon de faire cela?

Quelle est exactement la question?

OriginalL'auteur Francis | 2009-09-04