8
votes

Passage de la variable codée JSON de PHP à JavaScript via Post

J'ai un tableau multidimensionnel que je souhaite envoyer à un script PHP avec un JavaScript qui analyse les données JSON et tracé sur Google Maps. J'essaie de le simuler à l'aide de formulaires: xxx pré>

json-cible.php ressemble à ceci: p> xxx pré>

et la sortie de $ _ POST code> est tableau ([JSONARRAY] => [{) code>. Je voulais transmettre le contenu de la variable jsonarray code> à une fonction JavaScript (voir la mise à jour ci-dessous). P>

Mise à jour: strong> J'ai aussi un simple JavaScript qui est censé analyser la valeur reçue de _ Post code> et postez la valeur via alerte () code>: p> xxx pre>

mais La sortie est gérée avec des caractères de barre oblique inverse. P>

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\"}]);


1 commentaires

Quelle est exactement la question?


3 Réponses :


15
votes

Le codage JSON fait une utilisation intensive de citations. En émettant simplement une chaîne codée JSON dans votre attribut HTML VALUE , les guillemets interféreront avec le balisage. Ils doivent être échappés pour être mis dans le HTML. Essayez ceci: xxx

éditer: En réponse à votre mise à jour, je ne suis pas sûr de ce que votre JSON.PARSE est censé faire. Tout ce qui est codé avec json_encode () dans PHP est techniquement un objet JavaScript valide et n'a pas besoin d'être analysé plus loin. Si j'avais un objet nommé $ obj avec une propriété de nom de 'Hello', je pourrais faire ceci: xxx

et obtenir une alerte disant " Bonjour'. La sortie de JSON_ENCODE est un objet JavaScript parfaitement approprié.

Le fait que la sortie de votre _ POST _ POST a été échappée avec des esclaves me conduit à penser que peut-être que votre magic_quotes_gpc la directive est définie sur. Si tel est le cas, vous devrez insertionner vos variables $ _post avec Stripslashes () .


1 commentaires

Merci! J'ai pu obtenir la sortie dans json-cible.php mais maintenant l'objet JSON est géré. Est-ce que je fais la bonne approche?



3
votes

m'a pris un moment pour trouver la réponse. Essayez:

var json = JSON.parse(<?php echo stripslashes($_POST['jsonarray']) ?>);


0 commentaires

0
votes

var json = json.parse ($ ('# jsonarray'). Val ()); alerte (json.plate_no [0]);


1 commentaires

Bienvenue à Stackoverflow! S'il vous plaît envisager d'ajouter quelques explications à votre réponse. Merci!