Hallo!
Ich zerbrech mir seit ner Stunde den Kopf, also möcht ich euch mal zu Rate ziehen.
Auf meiner Seite hab ich ein Ajax-Script, welches die Inhalte eines Eingabefelds an ein php-Skript übermittelt.
Der Inhalt des Eingabefelds "search"
echo "Suchen nach: <input type="text" id="search" onkeyup="macheRequest('ajax.php')">";
wird an ajax.php übermittelt
var queue = 'search=' + urlEncode(document.getElementById('search').value);
http_request.send(queue);
Das ist die Funktion urlEncode, die alle Sonderzeichen beseitigen soll:
function urlEncode(str)
{
str=escape(str);
str=str.replace(new RegExp('\+','g'),'%2B');
return str.replace(new RegExp('%20','g'),'+');
}
So weit so gut. Wenn ich vor dem "send" die queue per Alert ausgebe, ist alles schön kodiert. b!"a# gibt z.B. b%21%22a%23 .
ajax.php gibt lediglich alle übermittelten arrays mit print_r bzw. foreach und echo aus, danach wird die "Antwort" per innerHTML in die Seite geladen.
Jetzt das Problem: einige Sonderzeichen wie " ' \ werden mit Slashes angezeigt, was nach dem kodieren ja nicht passieren sollte. Wo sitzt da der Wurm drin, was hab ich falsch gemacht?
Lg
M.B.