分かりにくいタイトルで申し訳ありません。。
今までJavaScriptでエラーチェックの制御を行っていましたが、
要望でJavaScriptを排除しなければならなくなり、途方に暮れています。
会員情報の新規登録のシステムを作成しています。
新規登録画面をA.php、登録内容確認画面をB.phpとします。
行いたいことは、A.phpの登録確認ボタンをクリックすると、そのページのテキストボックス、ラジオボタン等で入力された項目に不備がないかチェックし、問題がなかったらB.phpに遷移するという簡単な流れです。
当初は
<form name="myFORM" method="post" action="B.php" onSubmit="Check_input(document.myFORM)">
と記述し、JavaScriptで項目のチェックをし、問題があればポップアップで警告、なかったらB.phpに遷移していました。
JavaScript撤去後は、
<form name="myFORM" method="post" action="A.php">
として、いったん自分にPOSTし、A.phpの中でエラーチェックをして問題があればエラーをラベル出力するという形をとりました。
ここでつまずいているのが、A.php自身にPOSTし、エラーがない場合、POSTした値を保持したままB.phpに遷移したいができない、ということです。
エラーがない場合
header("location:B.php");
で、B.phpに飛んでいるのですが、当然ながらPOSTした値はついてきてくれません。。
項目数が多く、ひとつひとつに変数で値をもたせてあげることも難しいです。
何か良い案がございましたら、ご教授ください。
よろしくお願いいたします。
No.1
- 回答日時:
Aでチェックして値を保持したままBに遷移する意味がわかりません
普通に最初からBにとばしてBでチェックしてだめならエラー
画面、よければ次の処理画面を表示する分岐をいれればいい
じゃないですか?
この回答への補足
ご回答ありがとうございます。
エラーがあった場合に「○○を入力してください」と警告して、(この警告は、A.php内にラベルで表示します)項目入力を続行させる必要があるので、エラー画面を別で設けられません…。
さらに、画面を切り替えることなく、A.php内でチェックを行いたいため、質問させていただきました。
申し訳ありませんが、ご提示いただいた案で簡単な流れを教えていただければ…と思うのですが><;
No.2ベストアンサー
- 回答日時:
この回答への補足
ご回答ありがとうございます。
SESSION関数を使うのですね!
ただ、タイムアウトの部分が気になりますね^^;
全てhiddenというのも、勉強してみます><;
是非参考にさせていただきます。
No.3
- 回答日時:
さらに補足させてください。
私も以前、A.phpでの入力結果をB.phpでチェックという方法でプログラムを組みましたので、そのときの方法を書かせていただきますね。
流れとしては、
■A.phpで入力項目に入力、submit(B.phpへ)
■B.phpで、入力項目の内容をセッションに保存
■B.phpで入力値チェック、OKならそのまま画面表示、
NGの場合はセッションにエラー文字列を格納する。
(例:$_SESSION['err_msg'] = "<font color="red">・お名前が入力されていません。<br>・住所が入力されていません。</font>";)
■locationでA.phpへ
■A.phpのページ上部に、保存したエラーメッセージ$_SESSION['err']を表示。
セッションに保存した入力項目の内容をそれぞれのテキストフォーム等に再表示。
このような感じで作成しました。
ただ、私はあまりこの方法をおすすめできません。
というのは、エラーがあった場合に、この方法だとわざわざセッションにエラーを保存して受け渡しを行わなければなりません。
A.phpでチェックを済ませた場合には、エラー文字列をセッションに保存することなく、A.phpのページを再表示すればすむからです。
このときは会社の先輩にほとんど無理やり(苦)この方法で作らされましたが、できればA.phpでチェックというのが好ましいのではないでしょうか。
別ページに値を受け渡す方法としては、セッションかinputのhiddenあたりの使用がいいように思います。
ご参考程度になれば幸いです。
No.4
- 回答日時:
…大変申し訳ありません。
No2&No3です。
質問者様のご質問の意図を勘違いしておりましたので、No.3ではちんぷんかんぷんな回答をしてしまいました。
無視してください;;申し訳ありません~;
再度のご回答ありがとうございます。
いえいえ、お気になさらないでください^^
こちらこそ、勉強させていただきありがたく思っております。
No2でmyaa_myu様からご教授いただいたSESSIONで、現在無事に動作確認できています。
(hiddenの方はまだ勉強できていないのですが^^;)
SESSIONで問題ないと上から判断をもらえれば、これで確定したいと思います!
No.5
- 回答日時:
この様な場合、セッションを使ってデータを仮保存というのが一般的かもしれません。
ですが、ページを変更しなくてはならない理由(例えば絶対に遷移の記録をサーバログに残さなければならない)でもあれば別ですが、別に飛ばす必要は無いんじゃないんですか?
一つのスクリプト内で
A.phpのチェック
B.phpの出力
をすればいいと思います。どちらかと言うとこちらの方が一般的ではないかと。
作るのが面倒なら、A.phpの最後に
require ("B.php");
とすればそのままモジュールが入りますよね。
ご回答ありがとうございます。
そうですね、仰るとおりSESSIONが使いやすそうです。
一通りプログラムや設計書ができてしまっているので、ページを遷移するのは変更できないのです^^;
教わった方法は、今後の参考にさせて頂きます。
ありがとうございました^^
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
pdflib /pdi の拡張関数が有効...
-
POSTした値を、別ページにもPOS...
-
PHPでのAmazonAPI認証スクリプ...
-
PHPでテンポラリフォルダに書き...
-
onedrive にexcelファイルをア...
-
VBSの「MsgBox」について
-
こちらはただの直列処理ですか?
-
複数ファイルを連続でダウンロード
-
パースエラーとは?
-
リンク先を隠す方法はないでし...
-
拡張子php画像をjpg画像等に変...
-
図に示す階層構造で,現在のデ...
-
C# Excelファイルへの画像挿入。
-
PHPとCSVで簡易データベースな...
-
Subversionで、ファイルをリネ...
-
ワードプレス、Contact Form 7...
-
include先でのinclude元の変数...
-
PHPのif文でその処理を途中で抜...
-
PHPでネットワークドライブのop...
-
FTPコマンドでディレクトリごと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ImageCreate関数が undefined f...
-
PHPMailerのサンプルコードのエ...
-
marty3のvariableFilter
-
仮想フレームバッファXvfb上でf...
-
pdflib /pdi の拡張関数が有効...
-
php5のrename()は日本語をリネ...
-
smartyについて
-
ブラウザからPHPをアクセスした...
-
【初歩】 極単純なFOR文がなぜ...
-
Pear::QuickFormの代わりにな...
-
php.exeが強制終了されてしまう
-
mb_language("Japanese");でエ...
-
PHP認証がProxy越しだと通らな...
-
PHP ハイパーリンクのエン...
-
CodeIgniter/index.phpにアクセ...
-
よくわかるPHPの教科書のエラー...
-
Syntax Error Apach PHP W7
-
PEAR AUTH 認証エラーClass 'PE...
-
Parse errorが表示されない
-
onedrive にexcelファイルをア...
おすすめ情報