• 締切済み

Jquery AJAXで、1ページに複数のフォームを設置するにはどうす

Jquery AJAXで、1ページに複数のフォームを設置するにはどうすればいいでしょうか? 現在、以下のコードでメール送信をしてます。 1ページに複数のフォームがあり、押されたフォームボタンによって、そのフォームに対応した各value値をajaxの処理のところで受け取りたいです。 今のコードだと1つ目のフォームボタンを押すと正常にメールが送信されますが2つ目のフォームボタンを 押しても何も起こりません。 formにユニークなidをつけてsendmail.phpに変数を渡す前に、フォームボタンが押される度に ここの値をクリアしなければならないのかなと思っています。 >data : { message: $('#message').val(), exebtn:$('#exebtn').val()}, ----- index.php ------------------------- <略> <script type="text/javascript"> //<![CDATA[ $(function(){ $('#exebtn').click(function() { $.ajax({ type: "post", url : "sendmail.php", data : { message: $('#message').val(), exebtn:$('#exebtn').val()}, datatype:'text', success: function(data) { if(data != ''){ alert(data); }}, }); }); }); //]]> </script> </head> <body> <MTEntries> <form id="link" method="POST"> <input id="message" type="hidden" name="message" value="<$MTEntryTitle$>"/> <input id="exebtn" type="button" name="exebtn" value="リンク切れ"/> </form> </MTEntries> </body> </html> ----------------------------------------- ---- sendmail.php -------------------- <?php header('Content-Type: text/plain; charset=UTF-8'); $off=$_POST["exebtn"]; $message=$_POST["message"]; if ($off != ""){ $to = "hogehoge@hoge.jp"; $from = "hoge1@hoge.com"; $header = "From: $from\n"; $subject = "報告"; $subject = mb_convert_encoding($subject,"JIS","utf-8"); $message = mb_convert_encoding($message,"JIS","utf-8"); $ret = mb_send_mail($to,$subject,$message,$header); if($ret){ $msg = '送信しました'; }else{ $msg = '送信失敗しました'; } } echo $msg; ?> --------------------------------------------- ご教授、宜しくお願い致します。

みんなの回答

  • trapezium
  • ベストアンサー率62% (276/442)
回答No.1

$(':button').click(function() { とかして var message = $(this).prev().val(); var exebtn = $(this).val(); これを data に渡せばいいです。 $(':button') でまずければ、class を設定して絞るとか、微妙な振り分けが必要なら、 var id = $(this).attr('id'); とかで $.ajax 呼ぶ前に id を見て判断するとか。

chocoon
質問者

お礼

回答ありがとうございます。 素人なものですいませんがよくわかりませんでした。 具体的なコードはどういう風に書けばいいでしょうか。 ご教授お願い致します。

chocoon
質問者

補足

フォームボタンは押せるようになりましたが <input id="message" type="hidden" name="message" value="<$MTEntryTitle$>"/> messageの値が変わらずにメール送信されてしまいます。 ご教授お願い致します。

関連するQ&A