- ベストアンサー
処理後のページ内移動について
- PHPを使用して作成したメールフォームで、入力チェック後に特定の位置にジャンプしたいです。スクロールなしで見れる部分に表示させたいです。
- 同一ページ内でのページ内移動を実現する方法について教えてください。
- フォームの入力位置がページの下部にあるため、入力エラーがある場合にスクロールせずにエラー表示をしたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
レスがないみたいなので、とりあえず「こんな感じでは ?」という程度で... >途中の位置にジャンプしたい というのは、DOS や BASIC の GOTO, GOSUB 的なイメージですか ? PHP でのラベルへのジャンプのやり方は分かりませんが、 ベースファイルの中でフラグを立てて、必要に応じて個別パーツ (PHPファイル) をインクルードするような仕様にするというのは、 どうでしょう ? 以下、質問者さんの目的から的外れでしたら、読み飛ばしてください。 //-- base.php --// (ベースファイル) <?php $form_view = true; if (フォームからの GET か POST の値がセットされていたら) { // 入力チェック (チェックのみで出力はしない) require_once("otoiawase.php"); if (チェックが OK の場合) { $form_view = false; // メール送信実行 (ファイル名は勝手に付けました) require_once("send.php"); } else { // NG 内容を変数に格納 (form.php に渡すため) $なんたら = $_POST['かんたら']; } } if ($form_view) { // 入力フォーム表示 (form.php 内で NG 内容を渡す処理も含む) // (これも、ファイル名は勝手に付けました) require_once("form.php"); } else { // 送信完了表示 (ファイル名は勝手に付けました) require_once("thanks.php"); } ?> //-- otoiawase.php --// (入力チェックファイル) if (送信データが適正なら) { $チェック = 'OK'; } else { $チェック = 'NG'; } //-- send.php --// (メール送信ファイル) mail(送信先, 件名, メッセーシ); //-- form.php --// (入力フォーム表示ファイル) # アクション先は base.php にする # 作成済みのものに、NG 時の返り値を反映できるように変更 //-- thanks.php --// (送信完了時のファイル) # 送信完了したことを表示する