Speichern von JSON in ein verstecktes input-element?
Ich muss in der Lage sein erzeugen eine effektiv unbegrenzte Anzahl von Datensätzen, also, was ich tun möchte, ist so etwas wie dieses;
<input type="hidden" name="items[]" value="{id:1,name:'some-name'}" />
Versuchte ich JSON.stringify konvertieren mein array in javascript, und speichern Sie es in der aktuellen hidden-input-element, sondern es umschließt alle Schlüssel und Werte in Anführungszeichen eingeschlossen werden, was natürlich zu Konflikten mit HTML-wickeln Sie den gesamten Wert in doppelte Anführungszeichen. Irgendwie muss ich die Flucht der Zitate, aber ich brauche diese Arbeit zwei Möglichkeiten...im Grunde sind diese Elemente generiert mit PHP und platziert die Seite in Ordnung ist, dann kann ich hinzufügen oder löschen von Elementen am Ende des Benutzers und senden die Seite, die PHP Durchlaufen diese versteckten Elemente und Aktualisierung der Datensätze.
Jemand irgendwelche Vorschläge auf eine Flucht-Methode von einer Sorte?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie entkommen-Funktion hier vorgestellt: http://phpjs.org/functions/htmlspecialchars:426
Sollte es escape-chars im json-Format und machen Sie Ihre Schnur sicher zu verwenden als Wert von html-Attribut.
Wenn Sie wollen, um die Flucht auf PHP, dann sollten Sie die Funktion htmlspecialchars() gebaut ist, dass in der PHP.
Was Sie wollen zu tun ist, fassen einige von html5 data-* attrubites so kann man dod
Dann können Sie htmlentites() um den string sicher und javascript verwenden, können Sie die Daten mit javascript so:
Per jQuery für die Instanz, die Sie tun können,
Einer großen Menge von Websites, die es verwenden, vor allem Facebook
base64_encode die Daten, oder führen Sie es durch htmlentities() zu drehen, die Anführungszeichen in die Entitäten 🙂
Um ehrlich zu sein, wenn Sie den Wert im javascript-Code der Seite, dann bin ich ein wenig überrascht, dass Sie lief in Probleme, aber hier sind ein paar Vorschläge: -
Natürlich die richtige was zu tun ist, HTML-Kodierung der Daten in der html-Attribute - aber das erfordert Aufruf von htmlentities oder ähnliches anstatt also, warum nicht URL-kodiert die Daten mithilfe des "eingebauten" javascript
encode
unddecode
und Methoden. Die URL-Codierung sollte entkommen doppelten Anführungszeichen '%22'.Oder wenn Sie bereits jQuery, verwenden Sie die
val()
Methode zu setzen (und erhalten?) die Wert - ich bin sicher, das würde sich mit diesen Themen für Sie (obwohl ich noch nicht gegangen und eigentlich geprüft).