Ich möchte ein paar Variablen und einen String mit der POST
Methode aus JavaScript senden .
Ich erhalte die Zeichenfolge aus der Datenbank und sende sie dann an eine PHP-Seite. Ich benutze ein XMLHttpRequest
Objekt.
Das Problem ist, dass die Zeichenfolge das Zeichen &
einige Male enthält und das $_POST
Array in PHP es wie mehrere Schlüssel sieht.
Ich habe versucht, das &
durch \&
die replace()
Funktion zu ersetzen , aber es scheint nichts zu bewirken.
Kann jemand helfen?
Der Javascript-Code und die Zeichenfolge sehen folgendermaßen aus:
var wysiwyg = dijit.byId("wysiwyg").get("value");
var wysiwyg_clean = wysiwyg.replace('&','\&');
var poststr = "act=save";
poststr+="&titlu="+frm.value.titlu;
poststr+="§iune="+frm.value.sectiune;
poststr+="&wysiwyg="+wysiwyg_clean;
poststr+="&id_text="+frm.value.id_text;
xmlhttp.open("POST","lista_ajax.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(poststr);
Die Zeichenfolge lautet:
<span class="style2">"Busola"</span>
quelle
Möglicherweise möchten Sie encodeURIComponent () verwenden .
quelle
Sie müssen dem kaufmännischen Und-URL entkommen. Verwenden:
Wie Wolfram betont, wird dies (zusammen mit allen anderen Sonderzeichen) von encodeURIComponent gut gehandhabt.
quelle
Die Antwort von Ramil Amr funktioniert nur für den & Charakter. Wenn Sie andere Sonderzeichen haben, sollten Sie PHPs
htmlspecialchars()
und JSs verwendenencodeURIComponent()
.Du kannst schreiben:
Und auf der Serverseite:
Dadurch wird sichergestellt, dass AJAX die Daten wie erwartet weitergibt und dass PHP (falls Sie die Daten in eine Datenbank einfügen) sicherstellt, dass die Daten wie erwartet funktionieren.
quelle
Die bevorzugte Methode besteht darin, eine JavaScript-Bibliothek wie jQuery zu verwenden und Ihre Datenoption als Objekt festzulegen. Lassen Sie dann jQuery die Codierung wie folgt ausführen:
Wenn Sie jQuery nicht verwenden können (was heutzutage so ziemlich der Standard ist), verwenden Sie encodeURIComponent .
quelle
Sie können Ihre Argumente mit dieser Funktion encodeURIComponent übergeben, sodass Sie sich keine Gedanken über die Übergabe von Sonderzeichen machen müssen.
ODER
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
quelle
Sie können Ihre Zeichenfolge mithilfe der Base64-Codierung auf der JavaScript-Seite und anschließend auf der Serverseite mit PHP (?) Codieren.
JavaScript ( Docu )
PHP ( Docu ):
quelle
Dadurch werden Sonderzeichen abgeschnitten.
quelle