ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと

色々と見てみたのですが、どうしても探したい情報が見つからず
解決できません。住みませんが助けてください。

PHPでメールフォームを作成しています。
はじめのページでファーム入力し、その後サブミットボタンをクリックすると、
otoiawase.phpに情報を渡し入力チェックをします。
入力チェックでエラーがあれば、リストでエラーを表示するのですが、
その際に、エラーチェック後ページ内の途中の位置にジャンプしたいのです。
というのもフォームの入力位置がページの下部分にあるので、
フォーム入力部分が丁度スクロールなしで見れる部分に表示させたいのです。
要は<a href="#bbb">, <name="bbb">のような...
別のページに飛ぶ際はheader("Location: confirm.php#bbb");で
良かったのですが、同一ページ内でそういった処理をするには
どうすれば良いのでしょうか?

A 回答 (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 --// (送信完了時のファイル)
# 送信完了したことを表示する
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!