Ajax と PHP
<form action="mail.php" method="post">
<input type="hidden" name="from" value="index.php">
<input type="text" name="name">
<input type="text" name="email">
<text area name="messeage"></textare>
<input type="submit" value="Send">
</form>
<div id="message"></div>
というフォームがあります。これをPrototypeを使用し、sendが押されると各情報が mail.php にPOSTで送られます。受信が完了するとmail.phpは ご意見ありがとうございました。 という値をリターンし、<div id="message"></div> 内にメッセージを表示させるようにするにはどうすればいいのでしょうか?
PHP側ではなくAjax側をお願いします。成功した場合には少ないですが230ポイントをお支払いします。
注意:通常、AjaxでPOST形式でデータを送信する際 & を含むとそれ以後の文字が送信されなくなります。それを回避したものをお願いいたします。
エンコードが必要かと思います。
以下、参考になりますでしょうか?
JavaScript++かも日記
prototype.jsでしたら、Ajax.Requestというのがこれにピッタリかもしれません。
簡単ですが作ってみました
http://jippu.net/ajax/question/1176079627.html
これでいかがでしょう?
余談ですが、textarea周りに記述ミスとかがありましたよ。(大丈夫だとは思いますが)
ありがとうございます。
ん~ちょっと試してみたのですが、Firefoxでは動きませんね。最低でもIE6,7 Firefox、Safarなどの主要ブラウザで動けるタイプがいいです。
25ポイント~
2の回答者です。Firefoxでも動くように修正しましたよ。
(できればこれくらいはご自身でやって頂きたかった)
ありがとうございます。一度検討してみます。
>できればこれくらいはご自身でやって頂きたかった
すいません。なるべく自力でやりたいのですが、JSは始めたばかりなもので。。。
ただ、&を含んでしまうと送信されないみたいです。
25ポイント~
>ただ、&を含んでしまうと送信されないみたいです。
これはパラメータをencodeURIComponent()してあげて下さい。&もエンコードされるはずです。
PHP側ではたぶん特に何もしなくても&になるのではないでしょうか。
サンプルのPHP側で受け取ったパラメータも表示するようにしています。試してみてください。
なるほど。この関数は知りませんでした。参考になります。12ポイント~