• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:問い合わせフォームでの確認画面について)

問い合わせフォームの修正箇所とコード

このQ&Aのポイント
  • 問い合わせフォームでの確認画面の表示に関して、修正箇所とコードを教えてください。
  • 質問者は、問い合わせフォームをphpで作成しています。質問者は、「戻る」ボタンだけを表示する場合と、「戻る」と「OK」ボタンを表示する場合を区別することができました。しかし、問い合わせフォームの上に表示する文言を条件によって変更したいと考えています。具体的には、修正箇所がある場合には「入力内容に誤りがあります。※印の項目は必ずご記入ください。」と表示し、正確に入力されている場合には「以下の内容で送信しますか?」と表示したいです。この場合、どのようなコードをどの部分に記述すれば良いでしょうか?
  • 質問者の提供したphpファイルのコードには無駄が多いと思われますが、それについては特に問題ありません。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

ちょっと大人げなくて失礼致しましたm(_ _)m > この場合、どのようなコードを、どの部分に記述したら良いのでしょうか? ドコに出力したいかにもよりますが…(^^; > かなり無駄が多いかもしれません。 echo'<form>'; echo'<p align="center" class="margin01"><input type="button" value="戻る" onclick="history.back()"</p>'; echo'</form>'; ここの部分、コピペなのでもし最初の修正を間違えていると 全部ダメになっちゃうのが怖いですよね。 現にこのソース、inputタグが閉じられていません。 書き換えてしまうのはどうかと思ったのですが、 下記のような感じで実現されていますか? もし私の解釈が違うようでしたらご指摘下さい。 <?php /* 出力(echo)するためのfunction $errorBoolはエラーがあればtrue こうしておけば、後々色を変えたい時とか楽になります。 */ function myEcho($errorBool, $value) { if($errorBool) { echo'<FONT COLOR="#cc3333">',$value,'</FONT><br/>';; } else { echo $value; } } // list用? function myListEcho($errorBool, $value) { if($errorBool) { echo'お問い合せ内容をお選びください<FONT COLOR="#cc3333">&nbsp;※必ず入力してください。</FONT>';; } else { echo $value; } } // 先に各チェックをやってしまった方が、後々汎用性が出ます // 名前のチェック $name=$_POST['name']; $nameError = false; if($name=='') { $nameError = true; $name = '※必ず入力してください。';; } // E-mailのチェック $mail=$_POST['mail']; $mailError = false; $mail2=$_POST['mail2']; $mail2Error = false; if (!preg_match( '/^[a-z0-9][a-z0-9_\.\-]*@[a-z0-9][a-z0-9_\.\-]+[a-z]$/i', $mail)) { $mailError = true; $mail='※正しいメールアドレスを指定してください。'; }elseif($mail!==$mail2) { $mailError = true; $mail='※確認用メールアドレスと一致していません。'; } // 確認用チェック if($mail2=='') { $mail2Error = true; $mail2='※必ず入力してください。'; } // お問い合わせ内容確認? $list=$_POST['list']; $listError = false; if($list=='お問い合せ内容をお選びください') { $listError = true; } // 内容 $content=$_POST['content']; $contentError = false; if($content=='') { $contentError = true; $content='※必ず入力してください。';; } ?> <?php // そのままコピペで移動できるように別にしました。(ここがヒントのechoです) if($nameError || $mailError || $mail2Error || $listError || $contentError) { echo'<FONT COLOR="#cc3333">入力内容に誤りがあります。※印の項目は必ずご記入ください。</FONT><br/>';; } else{ echo'以下の内容で送信しますか?';; } ?> <table class="table margin01" width="592" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="190" align="left" bgcolor="#FFF09D">お名前<span class="tabletext1"></span></td> <td> <?php myEcho($nameError,$name);; ?> </td> </tr> <tr> <td align="left" bgcolor="#FFF09D">メールアドレス<span class="tabletext1"></span></td> <td> <?php myEcho($mailError,$mail);; ?> </td> </tr> <tr> <td align="left" bgcolor="#FFF09D">メールアドレス(確認)<span class="tabletext1"></span></td> <td> <?php myEcho($mail2Error,$mail2);; ?> </td> </tr> <tr> <td align="left" bgcolor="#FFF09D">お問い合せ内容<span class="tabletext1"></span></td> <td> <?php myListEcho($listError,$list);; ?> </td> </tr> <tr> <td align="left" bgcolor="#FFF09D">内容<span class="tabletext1"></span></td> <td> <?php myEcho($contentError,$content);; ?> </td> </tr> </table> <?php if($nameError || $mailError || $mail2Error || $listError || $contentError) { echo'<form>'; echo'<p align="center" class="margin01"><input type="button" value="戻る" onclick="history.back()"</p>'; echo'</form>'; } else { echo'<form method="post"action="thanks.php">'; echo'<input type="hidden" name="name" value="'.$name.'">'; echo'<input type="hidden" name="mail" value="'.$mail.'">'; echo'<input type="hidden" name="mail2" value="'.$mail2.'">'; echo'<input type="hidden" name="list" value="'.$list.'">'; echo'<input type="hidden" name="content" value="'.$content.'">'; echo'<p align="center" class="margin01"><input type="button"onclick="history.back()"value="戻る">'; echo'<input type="submit"value="OK"></p>'; echo'</form>'; } ?>

noname#233083
質問者

お礼

早々にお返事頂き、ありがとうございます!! 素人なので、確認したり、修正したりするのに、時間がかかりますので、わからないところががありましたら、後ほど補足説明させて頂きます。 ありがとうございました!!

noname#233083
質問者

補足

書き換えて頂いたコードをコピペしたのですが、エラー表記がでてしましました。 ちなみになのですが、PHPファイルにfunctionを記述する場合、何か環境を変えたりする必要はあるでしょうか? スライドショーを使うために、jQueryでfunctionをコピペで使ったことはあります。 とても難しいです・・・

その他の回答 (1)

回答No.1

http://qanda.rakuten.ne.jp/qa7817471.htmlで回答した者です。 「こんな方法が…」と提示しようかと思いましたが、前回の回答にお礼も補足もないので 私の回答が気に入らないんでしょうね。 ただ未回答はよくないと思いますので、ヒントだけ。 「echo」を使えばいいです。

noname#233083
質問者

お礼

ちょっと、待ってください!! 質問を終了していないといきは、お礼率は90%後半ですが、私は全ての回答にお礼をしておりますので、質問を終了すれば、お礼率は100%です! 時間差でbvltiggeari様へのお礼が遅くなりました!すみません!!ベストアンサーに致しました!! それにもかかわず、ヒントを下さいまして、ありがとうございます!! しかし、ヒントだけでは、わかりません・・・ どうかチャンスを下さいませ!!

noname#233083
質問者

補足

ちょっと、待ってください!! 質問を終了していないといきは、お礼率は90%後半ですが、私は全ての回答にお礼をしておりますので、質問を終了すれば、お礼率は100%です! 時間差でbvltiggeari様へのお礼が遅くなりました!すみません!!ベストアンサーに致しました!! それにもかかわず、ヒントを下さいまして、ありがとうございます!! しかし、ヒントだけでは、わかりません・・・ どうかチャンスを下さいませ!!

関連するQ&A