JQuery $ .post Problem mit E -Mails
Frage
Ich versuche, Daten in einer Lightbox über JQuery und PHP zu veröffentlichen. Es gibt nur 3 Feldwerte, die ich übergeben muss. Ich bekomme keine Fehler beim Senden, aber die E -Mails senden nicht. Ich bemerke (über Firebug), dass die E -Mail -Adressen, die in ein Textfeld eingegeben werden (die E -Mail -Adressen, an das das Formular gesendet wird), als "%40" anstelle von '@' gesendet werden. Hat jemand dies erlebt oder gewusst, warum/wie man dieses Problem behebt?
Meine JQuery -Funktion lautet wie folgt:
$('#notify form').submit(function(){
$.post('path/to/action/to/send/email', { id: $("#id").val(), client_reviews: $("#client_reviewers").val(), client_reviewers_msg: $("#client_reviewers_msg").val() }, function(){
tb_remove();
$('#client_reviewers').val('');
$('#client_reviewers_msg').val('');
});
return false;
});
Vielen Dank im Voraus für jede Hilfe. j
Lösung
Was Sie sehen, ist URL -Codierung.
Grundsätzlich das @
ist ein besonderer Charakter in einer URL. Wenn Sie also ein Feld mit einem besonderen Charakter einreichen, muss es entkommen werden. Dies ist am nützlichsten in einer GET -Anforderung, bei der die Feldwerte tatsächlich in der URL enden, aber eine Postanforderung folgt den gleichen Regeln.
In PHP können Sie die verwenden URLDECODE Funktion, um dies zu dekodieren.
Andere Tipps
%40 ist die URL -Darstellung des @ Zeichens. Sie müssen die E -Mail in PHP urldecrypt.