入力フォームでエラーがでた際に - PHPプロ!Q&A掲示板

2761

  • 0P

入力フォームでエラーがでた際に

質問日時 / 2010年6月12日 21:08    回答数 / 3件

Questioner:  lsd1192  このエントリーをはてなブックマークに追加 

キーワード / PHP   

たとえば
if(empty($name)){
print 'error';
}
if(empty($old)){
print 'error1';
}
があってユーザーがoldのみ空のまま送信したらprint 'error1';がでます。

error1が表示されてる下にリンクで<a href=xxxxxx>戻る</a>があり、クリックすると

$nameの情報は最初入力したままの表示でoldだけ入力すればいい状態にしたいのですが、どうやるのでしょうか?

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01shimix><a href=xxxxxx>戻る</a> の戻り先もスクリプトに
 ┗A01-1lsd1192>の戻り先もスクリプトにして、フォームの初期値(va
  ┗A01-1-1shimix>ちなみに携帯サイトです 後出し乙・・って言いた

回答一覧

並び替え:

A01
answerershimix [6月12日 21:47]

><a href=xxxxxx>戻る</a>

の戻り先もスクリプトにして、フォームの初期値(value)をセットする。どうやって入力値を引き継ぐかはCookieを使う(入力OKになった値をCookieに入れておく)などの工夫が要る。

当然だけど戻り先のフォームが(phpスクリプトでなく)単なるhtmlファイルだとお手上げ。JavaScriptでCookieを拾ってもいいけど、環境依存。



(蛇足)
私なら「エラー表示」と「戻るためのanchor要素」だけを返すことはしないですね。フォーム表示スクリプトで

  1.  エラーメッセージの変数をクリア
  2.  if ($_POST) {
  3.    入力値をチェック
  4.    入力エラーがあったらエラーメッセージをセット
  5.    全部OKだったら(エラーメッセージが空だったら)次の処理へ
  6.  }
  7.  フォームを表示($_POSTに値があれば、それを初期値としてセット)
  8.  エラーメッセージがセットされていたら、そのメッセージを表示

といった感じにしちゃいますね(form要素のactionは自分自身)。いちいち戻りをクリックしてもらうのも余計だし。エラーメッセージを配列で工夫すれば「再入力しないといけないinput要素の横にエラーを表示」なんてこともやりやすいです。

この意見に回答する

ツリーへ TOPへ

A01-1
replyerlsd1192 [6月12日 22:11] (最終編集:6月12日 22:18)

>の戻り先もスクリプトにして、フォームの初期値(value)をセットする。どうやって入力値を引き継ぐかはCookieを使う(入力OKになった値をCookieに入れておく)などの工夫が要る。

valueのセットはわかるのですが、戻り先のスクリプトとかって参考になるサイトご存知でしょうか?
ちなみに携帯サイトです

header("Location:アドレス");を使うのですかねぇ?

セッションの情報を遷移させるってことでいいんですかね?><;

この意見に回答する

ツリーへ TOPへ

A01-1-1
replyershimix [6月13日 12:01]

>ちなみに携帯サイトです

後出し乙・・って言いたくもなりますが、携帯なら($_COOKIEというわけにはいきませんから)素直に$_SESSIONを使うべきでしょうね。

>戻り先のスクリプトとかって参考になるサイトご存知でしょうか?

いや、値があったらvalueにセットするだけですけど・・。


ちなみに

>header("Location:アドレス");を使うのですかねぇ?

意味不明です。どういうことなのかちょっとわかりません。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
PHPのHTML埋め込み記述について
 このエントリーをはてなブックマークに追加 
A
$_POST["data"] == "男" ? $val = "checked" : $val = "" ; の意味は以下と同じです。 if($_POST["data"] == "男"){ $val = "checked; } e...

>>続きを読む

kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)