• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数のテキストボックスに対する入力チェック)

PHPでDBのテーブル内容変更画面を作成する際の入力チェックについて

このQ&Aのポイント
  • PHPでDB内のデータを取得してテキストボックスに表示する画面を作成しています。変更(UPDATE)操作の際にJavaScriptで入力チェックを行いたいのですが、複数行の入力チェック方法についてわかりません。
  • JavaScriptでは複数行の入力チェックには配列を使用する必要がありますが、PHPのfetch関数を使って表示しているため、行数がわかりません。行数を取得する方法について教えてください。
  • 入力チェックによって空欄やバイト数の制限をかけることで、DBのテーブル内容変更画面をより安全に操作できるようにしたいです。行数を取得する方法についてお知恵を拝借したいです。

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 1レコードに対してテキストボックスと「更新」「削除」のボタンが存在するということで良いでしょうか? 下のようなHTMLが生成されているとします。 <form name="record1" action="regist.php" method="post"> <input type="hidden" name="id" value="1"> <input type="text" name="text1"> <input type="button" value="更新" onClick="updateCheck(this.form);"> <input type="button" value="削除" onClick="deleteData(this.form);"> </form> <form name="record2" action="regist.php" method="post"> <input type="hidden" name="id" value="2"> <input type="text" name="text1"> <input type="button" value="更新" onClick="updateCheck(this.form);"> <input type="button" value="削除" onClick="deleteData(this.form);"> </form> <form name="record3" action="regist.php" method="post"> <input type="hidden" name="id" value="3"> <input type="text" name="text1"> <input type="button" value="更新" onClick="updateCheck(this.form);"> <input type="button" value="削除" onClick="deleteData(this.form);"> </form> <form name="record4" action="regist.php" method="post"> <input type="hidden" name="id" value="4"> <input type="text" name="text1"> <input type="button" value="更新" onClick="updateCheck(this.form);"> <input type="button" value="削除" onClick="deleteData(this.form);"> </form> こうあったとしたら、 function updateCheck ( formObj ) { // テキストエリアの情報を取得 var text1 = formObj.text1; if ( text1 != "" ) { formObj.submit(); } else { alert ( "空での登録は出来ません。"); } } 更新ボタンをクリックするとそのフォームオブジェクトがupdateCheckに渡され、 そのフォームオブジェクト内のtext1の内容を取得して、空白であるかどうか チェックを行い、入力されていればそのフォームをサブミットします。 入力されていなければalertでエラーを表示します。 このようなフォームの出力の仕方だとしたら行数は特に取得することなく 希望どおりの動作が出来ると思います。 全然違っていましたら、またご相談ください。 ちなみに行数の取得方法ですが、DBにもよりますが取得結果より件数を取得する 関数が用意されています。それを使い、HTML(JavaScript)を生成するときに 埋め込めばいいと思います。 <?php // 取得件数を取得 $cnt = 取得; ?> ・・・・ ・・・・ ・・・・ function test () { var recordMax = <?= $cnt ?>; } こうすることによりJavaScriptでも取得した件数を使うことが出来ます。

chizudara
質問者

お礼

どうもありがとうございました!御礼が遅くなってしまって申し訳ありません。大変参考になりました。今はオフィスにいないのでまだ試せませんが、仕事明けで早速試してみたいと思います。本当にありがとうございました。

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 #1です。 すいません。 function updateCheck ( formObj ) { // テキストエリアの情報を取得 var text1 = formObj.text1; if ( text1 != "" ) { formObj.submit(); } else { alert ( "空での登録は出来ません。"); } } は下が正しいです。 function updateCheck ( formObj ) { // テキストエリアの情報を取得 var text1 = formObj.text1.value; // ここを間違えていました。 if ( text1 != "" ) { formObj.submit(); } else { alert ( "空での登録は出来ません。"); } }

chizudara
質問者

お礼

2度もご丁寧にありがとうございました!