質問

jqueryとphpを介してライトボックスにフォームデータを投稿しようとしています。合格する必要があるフィールド値は3つしかありません。送信時にエラーはありませんが、メールは送信されていません。私は(FireBugを介して)テキストボックスに入力されているメールアドレス(送信されるフォームが送信するフォーム)が「@」ではなく「%40」として送信されていることに気付きます。誰かがこれを経験したことがありますか、それともこの問題を修正する理由/方法を知っていますか?
私のjQuery機能は次のとおりです。

$('#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;

});

どんな助けにもよろしくお願いします。 j

役に立ちましたか?

解決

あなたが見ているのはです URLエンコーディング.

基本的に、 @ URLの特別なキャラクターです。そのため、特別なキャラクターが入ったフィールドを提出するときは、逃げる必要があります。これは、フィールド値が実際にURLに表示されるGETリクエストで最も役立ちますが、POSTリクエストは同じルールに従います。

PHPでは、を使用できます urldecode これをデコードする機能。

他のヒント

%40は、 @記号のURL表現です。 PHPで電子メールをurldecryptする必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top