MB: Ajax, PHP, Javascript. Wo kommen die Slashes her?

Beitrag lesen

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.