<body>
<div> <?= $_POST['msg'] ?> </div>
<form id="frm" method="post">
<input type="hidden" name='msg' value='{"field0": "Im a string", "field1": 84, "field3": "so am I"}' />
<input type="submit" value="test" />
</form>
</body>
Lorsque le formulaire est affiché, la chaîne suivante est affichée entre les balises div.Pourquoi les caractères d'échappement sont-ils ajoutés à la valeur de l'entrée masquée
{\ "Field0 \": \ "Im une chaîne \", \ "field1 \": 84, \ "field3 \": \ "si je suis I \"}
Pourquoi les caractères d'échappement sont-ils ajoutés? Sont-ils ajoutés par le serveur PHP ou le client Web? Puis-je faire quelque chose pour empêcher cela?
Quelqu'un a déjà mentionné la fonction PHP stripslashes. Je l'utilise pour l'instant mais je veux me débarrasser des barres obliques.
Je ne pense pas que dojo fasse quelque chose de funky parce que frm.submit() est plain ole javascript et request.value == msg avant de soumettre le formulaire. Cependant, +1 pour les stripslashes(). Je vais l'utiliser jusqu'à ce que je devine ce qui se passe. –