PHPによる入力フォームのチェック

このQ&Aのポイント
  • JavaScriptで入力チェックを行い、未入力の場合にエラーメッセージを表示する方法と同様に、PHPでも同様の動作を実現することができます。
  • 受け取った内容(POST)をチェックし、エラーメッセージを表示するページを別に用意する方法もあります。
  • どちらの方法を選ぶかは、開発者の好みや要件によるものです。
回答を見る
  • ベストアンサー

phpによる入力フォームのチェック

入力フォームの入力チェックを行いたいと思います。 姓     :テキストボックス <div></div> 名     :テキストボックス <div></div> 郵便番号:xxxx <div></div> とあった場合、 javascriptで、チェックをかけ、未入力の際等に 各DIVブロックに、innerhtmlで、「入力項目を確認してください」等を 書き込ませば対応できると思っています。 PHPでもjavascriptと同じように、innerhtmlと同じようの動作をさせ ページの一部分を変更させるとか できるのでしょうか? それとも受け取った内容(POST)をチェックし、 「入力項目を確認してください」のページを別に用意する必要があるのでしょうか?

  • PHP
  • 回答数3
  • ありがとう数5

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>PHPでもjavascriptと同じように、innerhtmlと同じようの動作をさせ 微妙におかしい POSTもしくはGETすれば、空のテキストボックスはチェックできますが おそらく非同期でおこないたいのですよね? 良しあしはともかく、非同期処理の場合ajaxで送る処理はかんがえられます。 送った先で空ボックスをチェックして戻り値をdivに返すことは可能でしょう ただ空チェックなら送るまでもなくjavascriptでチェックすれば済む話。 逆にjavascriptをつかわないならajaxもあり得ないです。 つまり、 (1)javascriptで十分 (2)javascriptをつかわないならPOSTやGETするしかない (3)データ送信するならいくらでもやりようがある ってことかな?

ShiftTail
質問者

お礼

(1)javascriptで十分 (2)javascriptをつかわないならPOSTやGETするしかない (3)データ送信するならいくらでもやりようがある やっぱりこうするのが一番なのですね。 情報ありがとうございます。 助かりました。

その他の回答 (2)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

#Ajax的に非同期に・・・というのは置いといて(汗 入力フォームに戻すときに、受け取った内容が問題ない(エラーにならない)項目は、入力された値を初期値としてinput要素のvalue属性にセットしますよね。それと同様に所定のdiv要素に最初からエラーメッセージをセットして返します(JavaScriptで入力OKとなったらinnerHTMLをクリアするので消える)。 普通は「入力フォーム」のhtmlソースをテンプレート化しますから、そのときに「POSTされた内容を埋め込む部分」と「エラーメッセージを埋め込む部分」をあらかじめ作っておきます。今回は、そのhtmlソースにJavaScriptを書いておいて、エラーメッセージ部分をブラウザ側でもコントロール出来るようにするというだけですね。

ShiftTail
質問者

お礼

情報ありがとうございます。 テンプレートの利用をする方法ですね。 参考にさせていただきたいと思います。 情報ありがとうございました。

  • tumeno
  • ベストアンサー率41% (5/12)
回答No.2

入力内容にもよりますが、重要なものはjavascriptとPHPの両方でチェックすべきです。 javascriptの場合。 > javascriptで、チェックをかけ、未入力の際等に > 各DIVブロックに、innerhtmlで、「入力項目を確認してください」等を > 書き込ませば対応できると思っています。 そうですね。あとはチェックのタイミングをどこでやるかです。  submitの時に全てを纏めてチェック、or onmouseoutの時に1つ1つをチェックするとか。 それで、空の場合にエラーメッセージをinnerhtmlでセットすればokです。

参考URL:
http://asp-form.jp/
ShiftTail
質問者

お礼

やはり、チェックタイミングで切り分けるのですね。 参考URLも張っていただきありがとうございます。 確かめさせていただきます。 情報ありがとうございます。

関連するQ&A

  • 選択肢によって入力必須が変わるフォームの入力チェックJavaScrip

    選択肢によって入力必須が変わるフォームの入力チェックJavaScript フォームの入力チェックのJavaScriptを作成しています。 特定のラジオボタンにチェックを入れた場合のみ、 入力必須になるテキストボックスの 入力チェックJavaScriptを教えてください。 ラジオボタンが複数あるフォームで、 <input type="radio" name="type" value="type1" /> <label>タイプ1</label> <input type="radio" name="type" value="type2" /> <label>タイプ2</label> タイプ2を選んだ場合のみ、必須項目にしたいテキストボックスがあります。 <input type="text" name="name1" /> テキストボックスが空白だった場合にアラートを出すJavaScriptは 現在このようになっています。 (参考にしていたサイトがあるのですが、忘れてしまいました・・・。) $(function(){ $("form1").submit(function(){ if($("input[name='name1']").val()==""){ $("input[name='name1']").css("border","1px solid #A70F00"); alert('必須項目に未入力があります'); return false; }) }) このJavaScriptをさらに、if文で括って、 name="type" の value が type2 であれば・・・、という処理を追加すればよいのだと 思いますが、書き方が分からず困っています。 どうかよろしくお願いします。

  • メールフォーム チェックボックス

    以前にも何度かご質問させていただいたのですが、できなかったためもう一度ご質問させていただきました。 入力フォームで各項目を入力してから確認画面、送信となるフォームです。 入力フォームにて各項目を入力し、確認画面が表示され、確認画面にて入力等の間違えや、入力をし忘れた等などがあった場合「戻る」で、入力画面に戻るようにしています。 (必須項目が記入されていなかった場合は自動で入力画面に戻るように設定。) 入力画面にてチェックボックス(選択1,選択2にチェックをしたとする。)を選択し、確認画面が表示されたあと入力画面に戻るとチェックボックスが選択されていたはずなのにチェックがはずれているという現象が起きています。 入力画面→確認画面→入力画面ページが表示されてもセレクトメニューの値はそのままでなおかつチェックボックスの値もそのまま表示されているようにしたいです。 この現象を直すにはどのように記述したらよろしいでしょうか? また、チェックを必須項目にさせてチェックがされなかった場合のエラー出力方法の記述も教えていただけないでしょうか? 下記は入力フォームの記述になります。 入力画面 <?php $position_arrays = array('選択1','選択2','選択3','選択4','選択5'); for ($i = 0; $i < 5; $i++) { $checked = "" ; $checked = ($_SESSION["position"][$i] == $position_arrays,[$i]) ? "checked":""; print '<input type="checkbox" name="position['.$i.']" value="'.$position_arrays[$i]. '" '.$checked.'>' . $position_arrays[$i]. "\n"; } ?> 確認画面 $position = isset($_POST['position']) ? implode(" , " , $_POST['position']) : NULL; ・ ・ ・ $_SESSION['position'] = $position; とても説明がしずらいためわかりにくいとこがあると思いますが、宜しくお願いします。 また、何か足りない記述等が御座いましたら、お申しでください。 他のテキストボックスなどは正常に動作しております。 (入力画面→確認画面→入力画面の動作をおこなってもテキストボックス内に表示されています。) 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • メールフォーム チェックボックス

    以前もご質問させていただいたのですが、できなかったためもう一度ご質問させていただきました。 入力フォームで各項目を入力してから確認画面、送信となるフォームです。 入力フォームにて各項目を入力し、確認画面が表示され、確認画面にて入力等の間違えや、入力をし忘れた等などがあった場合「戻る」で、入力画面に戻るようにしています。 (必須項目が記入されていなかった場合は自動で入力画面に戻るように設定。) 入力画面にてチェックボックス(選択1,選択2にチェックをしたとする。)を選択し、確認画面が表示されたあと入力画面に戻るとチェックボックスが選択されていたはずなのにチェックがはずれているという現象が起きています。 入力画面→確認画面→入力画面ページが表示されてもセレクトメニューの値はそのままでなおかつチェックボックスの値もそのまま表示されているようにしたいです。 この現象を直すにはどのように記述したらよろしいでしょうか? また、チェックを必須項目にさせてチェックがされなかった場合のエラー出力方法の記述も教えていただけないでしょうか? 下記は入力フォームの記述になります。 入力画面 <?php $position_arrays = array('選択1','選択2','選択3','選択4','選択5'); for ($i = 0; $i < 5; $i++) { $checked = "" ; $checked = ($_SESSION["position"][$i] == $position_arrays,[$i]) ? "checked":""; print '<input type="checkbox" name="position['.$i.']" value="'.$position_arrays[$i]. '" '.$checked.'>' . $position_arrays[$i]. "\n"; } ?> 確認画面 $position = isset($_POST['position']) ? implode(" , " , $_POST['position']) : NULL; ・ ・ ・ $_SESSION['position'] = $position; とても説明がしずらいためわかりにくいとこがあると思いますが、宜しくお願いします。 また、何か足りない記述等が御座いましたら、お申しでください。 他のテキストボックスなどは正常に動作しております。 (入力画面→確認画面→入力画面の動作をおこなってもテキストボックス内に表示されています。) 宜しくお願いいたします。

    • 締切済み
    • PHP
  • マクロ フォームでのチェックボックスについて

    教えてください。 1)フォームでテキストボックス2つ、ボタンで新しい入力フォーム表示 2)入力フォームでチェックボックス6個、コンボボックス6個を作ります。 3)チェックボックスにチェック(1個のみ)したら、1)のフォームのテキストボックスにチェックされた、項目とコンボボックスで選択された内容が転記したい。 例)果物にチェック、コンボでブドウと選択  テキストボックス→果物 ブドウ というようにフォームに転記させたい。 以前、シートでのマクロを教えていただきましたが、フォームだと頭が混乱してしまいました。 簡単で良いので、マクロの記述を教えてください。

  • テキストフォームの未入力チェック

    お世話になります。 Javascriptでテキストフォームの入力チェックを行っております。 テキストフォームにはDBから取得した値が入っており、その値を変更して更新できるプログラムを作ろうとしています。 テキストフォームが未入力だった場合に元の値を入れてPOSTリクエストを投げたいのですが方法が分かりません。 (よく見かける未入力だったらアラートを出すというのは出来るのですが・・・) 以下ソースの抜粋になります。 function check(){ for(i=0; i<document.iform1.length;i++){ if(document.form1.elements[i].value==""){ document.iform1.elements[i].valueに元の値を入れたい。 } } <form name="form1" action="updata.php" method="POST"> <input type="button" name ="save" value="更新" onClick="check()"> </form> 以上、ご教示よろしくお願いいたします。

  • 入力フォームの作成について

    現在、入力フォームを作成しています。 テキストボックス「A」 ラジオボタン(またはチェックボックス)「1」「2」「3」 テキストボックス「B」 Aのテキストボックスに文字を入力し、ラジオボタン(またはチェックボックス)の2を選択した時のみにBにAの内容をコピーさせるにはどのように記述すればよろしいでしょうか。 JavaScript 関係の書籍を読みましたが、具体的に書いてあるものはなく、組み合わせが必要だとは思うのですが、うまくいきません。 webでも調べてみましたが、テキストボックスに入力するとラジオボタンがチェックされるというのは見つけましたが、この質問のことは見つけられませんでした。 逆に言えば、難しいということでしょうか・・・ 以上、よろしくお願いします。

  • ホームページ 入力チェックのアラートについて

    PHP、HTMLを使用して入力フォームを作成しております。 項目の入力チェックにはJavascriptを使用しており、エラーがあった場合に メッセージボックス(alert)で表示しています。 しかし、依頼主からメッセージボックスより、カッコいいホームページにある ようなテキストボックスの隣に赤の*を表示させたいと要望があり、どのように 実現させれば良いのか、いまいちよく解りません。 入力内容をサーバーでチェックさせて再表示というのも一つの手だと思い ますが、できればブラウザ側でチェックさせる、要はJavascriptでそういうこと が実現できないかと考えております。Javascriptで検索しても上記のようなサンプル も見当たりませんでした。 なにぶん、PHPやJavascript使っていると書いておきながら超初心者なので 他に良いやりかたがあればご教授願います。

    • ベストアンサー
    • HTML
  • 入力チェックでの値の保持

    php(Version 4.3.11)でフォームの入力チェックを含んだ部分を作成しております。 1. aaa.phpにてデータ入力 2. bbb.phpにて入力されたデータの整合性をチェック    チェックを通ればccc.phpへ    チェックに引っかかればaaa.phpへ戻る ・・・※ ※において、aaa.phpにて入力されたデータを保持したいのですが、どよのうにするのが標準なのでしょうか? (「趣味」項目のテキストボックスに「ドライブ」と入力されていたら、aaa.phpに戻ったとき、「趣味」項目のテキストボックスに「ドライブ」をセットしたい。) 入力項目はかなり多いので、 Location:a.php? で引き継ぐのも良くないと思ってます。 今まではaspでイントラネットの開発ばかりだったので、全部JavaScriptで行っていました。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • フォームの入力チェック

    こんにちは、今回はホームページのワザについて教えて下さい~。 今フォームを作成してアンケートを回答してもらうページを作成中なのですが、そこで躓いてしまいました。 CGIでフォームを作成しているのですが、そのフォームの中の回答で必須項目を作りたいのです。回答していないで送信ボタンを押すとダイヤログが出て「××をご記入ください」のようなメッセージを出す・・・こんなのが理想なのです。 今普通にCGIでフォームだけは完了したのですが、そのチェック機能をjavaでつけても動いてくれないのです(泣)。全くjavaが働かず、普通に送信されてしまいます。 CGIを外してjavaだけでやろうとするとアドレスを予め設定していないという事でエラーになりますし・・・。今は <SCRIPT language="JavaScript"> <!-- function Check(){ if(document.myform.ks.value==""){ alert("必須項目を記入してください。"); return false; } ・ ・ ・ // --> </SCRIPT> </HEAD> <BODY><!--××× CGI Program--> <FORM action=http://www.CGIのテキストまでのパス.txt method=post onSubmit="return Check()"><INPUT type=hidden value=××@×× name=sendto><INPUT type=hidden value=/mail/××.htm name=success><!--ここまで--><A name=TOP></A> としてあります・・・。 すみません!どなたかわかる方!ぜひ教えて下さい、お願いいたします!

    • ベストアンサー
    • HTML
  • PHPで名前入力フォーム作成

    PHPで名前入力フォームのプログラムを 作成するという問題を教えてください。 『テキストボックスに名前を入力してPOSTで送信するページを作成し、 ▪︎名前が入力されている場合は「ようこそ◯◯さん」 ▪︎名前が入力されていない場合は「名前を入力してください」 と表示するプログラムを作成してください。 POSTでデータを送信するファイルと受信するファイルは、別々に作成してください。 画面イメージは以下のようになります。』

    • ベストアンサー
    • PHP