JavaScriptを使用したシステム構築におけるチェックボックスと数量未記入のエラー判定方法

このQ&Aのポイント
  • HTML、JavaScript、PHP、MySQLを使用してシステム構築を学習中です。チェックボックスと数量記入欄の組み合わせで、数量未記入の場合にエラー判定をしたいです。
  • 具体的なコードでは、フォーム内の連番でチェックボックスと数量記入欄を作成しています。JavaScriptの関数でエラーを判定する際、効率的にforループを使用したいです。
  • 初心者ですが、アドバイスやエラー判定方法についてのアイデアをいただけると幸いです。
回答を見る
  • ベストアンサー

こんにちは。現在、HTML、JavaScript、PHP、MySQLを

こんにちは。現在、HTML、JavaScript、PHP、MySQLを用いて簡単なシステム構築を学習しています。いきなりで恐縮ですが、詰まってしまっている状況をまとめます。 本システムではデータベースから「商品一覧表」というものを作成します。 チェックボックスと数量記入欄としてテキストボックスを設け、チェックを入れ、数量が記入されている場合のみ、次の購入画面に遷移します。 このとき、私としてはチェックされているにも関わらず数量未記入の場合にエラー判定を出したいのです。 次に、具体的なコードをまとめます。 <form name = "goods" method = "post" action = "abc.php"> <input type = "checkbox" name = "check1" value = "yes" > <input type = "text" name = "quant1" size = "5" > <input type = "checkbox" name = "check2" value = "yes" > <input type = "text" name = "quant2" size = "5" > <input type = "checkbox" name = "check3" value = "yes" > <input type = "text" name = "quant3" size = "5" > ~中略~ <input type = "submit" value = "次へ" onclick = "return error();"> </form> このようにnameの部分は連番になっていて、PHPで自動的に数字を付加させています。 私としてはerror()側でエラー判定を行う際に、 if(document.goods.check1.checked && document.goods.quant1.value ==""){ alert(数量未記入です); } といった流れをfor文などで効率良く回したいのです。 しかしcheck1とquant1の「1」の部分に変数を設定できません。 elements[i]とすればform内のエレメントオブジェクトを順番に見分けられるのでしょうけど、私としてはどうしてもcheckとquantを用いたいのです。 初心者同然なので、質問内容も支離滅裂だと思うのですが、もし何かアドバイスを頂けたら幸いです。よろしくお願いいたします。

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

  • ベストアンサー
  • duron
  • ベストアンサー率77% (73/94)
回答No.1

↓のような感じでアクセスしてみてはどうでしょう? <html> <head> <title>テスト</title> <script language="Javascript"> <!-- function check(){ for(i=1;i<=5;i++) { value=document.forms['testform'].elements['check'+i].checked; alert(i+"の状態は"+value+"です。") } } --> </script> </head> <body> <form name="testform"> <input type="checkbox" name="check1"><br> <input type="checkbox" name="check2"><br> <input type="checkbox" name="check3"><br> <input type="checkbox" name="check4"><br> <input type="checkbox" name="check5"><br> <input type="button" value="チェック" onclick="check();"> </form> </body> </html>

zim7updown
質問者

お礼

御返事遅くなってしまい、申し訳ありません。 無事、問題を解決することができました。 私が作成していたコードと類似しており、スムーズに適用できたので 誠に勝手ながらベストアンサーとさせていただきました。 このたびはありがとうございました。

その他の回答 (1)

回答No.2

ぜんかくくうはくは、はんかくに。 <!DOCTYPE html> <title></title> <body> <form id = "goods" method = "post" action = "abc.php" onsubmit="errorCheck.call( this, event )">  <p>  <input type = "checkbox" name = "check1" value = "yes" >  <input type = "text" name = "quant1" size = "5" >  <input type = "checkbox" name = "check2" value = "yes" >  <input type = "text" name = "quant2" size = "5" >  <input type = "checkbox" name = "check3" value = "yes" >  <input type = "text" name = "quant3" size = "5" >  ~中略~  <input type = "submit" value = "次へ">  </p> </form> <script><!-- //@cc_on function errorCheck (e) {  var max = 3;  var flag = false;  var errMess = [ ];  var elements = this.elements;  var checkbox;  var text;  var i;    for (i = 1; i <= max; i++) {   checkbox = elements[ 'check' + i ];   text = elements[ 'quant' + i ];   if (checkbox && text) {    if (checkbox.checked && '' == text.value) {     errMess.push (i + '番目がへん');     flag = true;    }   }  }    if( flag ) {   alert( errMess.join('\n') );   e./*@if( @_jscript ) returnValue = false @else@*/ preventDefault() /*@end@*/;  } } // max = 3 は、ださいか? //--> </script>

zim7updown
質問者

お礼

御返事遅くなってしまい、申し訳ありません。 無事、問題を解決することができました。 このたびはありがとうございました。

関連するQ&A

  • JavaScriptでcheckboxの入力個数制限

    以下のようなチェックボックスがあります。 3つ以上チェックできないようにしたいのですが、JavaScriptで可能でしょうか? <FORM method=POST action="aaa.cgi" name="FORM1"> <input type="checkbox" name="Q1" value="1">1<br> <input type="checkbox" name="Q2" value="1">2<br> <input type="checkbox" name="Q3" value="1">3<br> <input type="checkbox" name="Q4" value="1">4<br> <input type="checkbox" name="Q5" value="1">5<br> </form>

  • php アンケートについての質問

    htmlのフォームから送信 phpでアンケート結果を受け取る ようなものを書きましたがphpの受け取る処理でエラーが起きてしまうので@を書いて何とか動くようにしました。@を使わずにエラーを修正したいのですがうまくいきません。どなたか助けてさい <html> <p> </p> <h3>アンケート</h3> <form name="form" action="upload1.php" method="GET"> <body bgcolor="#f40fff" text="#ffffff"> <p> お名前を入力して下さい:<br> <input type="text" name="simei"> </p> <p> 性別を選んで下さい。<br> <input type="radio" name="gender" value="男性">男性です<br> <input type="radio" name="gender" value="女性">女性です<br> </p> <p> この大学を何で知りましたか?<br> <input type="checkbox" name="check1" value="メディア媒体"/> メディア媒体で<br> <input type="checkbox" name="check2" value="イラスト"/> イラストで<br> <input type="checkbox" name="check3" value="その他"/> その他<br> </p> <p> 最近ハマっていることは?<br> <input type="checkbox" name="check4" value="サークル、部活"/> サークル部活など<br> <input type="checkbox" name="check5" value="得にない"/> 得にない<br> <input type="checkbox" name="check6" value="その他"/> その他<br> </p> <p> 今やりたいことは?<br> <input type="checkbox" name="check7" value="課題"/> 課題など<br> <input type="checkbox" name="check8" value="得にない"/> 得にない<br> <input type="checkbox" name="check9" value="その他"/> その他<br> </p> <p> <input type="submit" name="submit" value="送信"> </p> </body> </html> php <html> <body bgcolor="#f40fff" text="#ffffff"> <p> </p> <h3>アンケート</h3> <p> <?php print(date('A:g時i分s秒').'<br>'); ?> <b>お名前:</b><br> <?php print( @$_REQUEST["simei"] ); ?> </p> <p> <b>性別:</b><br> <?php print( @$_REQUEST["gender"] ); ?> </p> <p> <b>この大学を何で知りましたか:</b><br> <?php print( @$_REQUEST["check1"] ); ?><br> <?php print( @$_REQUEST["check2"] ); ?><br> <?php print( @$_REQUEST["check3"] ); ?><br> </p> <p> <b>最近ハマっていることは:</b><br> <?php print( @$_REQUEST["check4"] ); ?><br> <?php print( @$_REQUEST["check5"] ); ?><br> <?php print( @$_REQUEST["check6"] ); ?><br> </p> <p> <b>今やりたいことは:</b><br> <?php print( @$_REQUEST["check7"] ); ?><br> <?php print( @$_REQUEST["check8"] ); ?><br> <?php print( @$_REQUEST["check9"] ); ?><br> </p> <p> <?php $life = 60 * 60 * 24 * 30; if(isset($_COOKIE["count"])) { $count = $_COOKIE["count"] + 1; } else { $count = 1; } setcookie("count", $count, time() + $life); ?> <?php echo $count, "回目の訪問です。\n"; ?> </body>

    • ベストアンサー
    • PHP
  • MySQLとPHP(HTML)の連携について

    送信側では、PHP(HTML)下記のように書きました。 ----------------------------- <form action="input.php" method="post"> ボタン1:<input type="submit" name="input" value="入力">   ボタン2:<input type="submit" name="input2" value="入力"> </form> ----------------------------- 受信側(input.php)は下記のように書きました。 ----------------------------- <?php $url = "***.sakura.ne.jp"; $user = "abc"; $pass = "12345"; $db = "sakura_db"; if (isset($_POST["$input"])){ $sql = "SELECT SQL_CALC_FOUND_ROWS * FROM MAIN"; }elseif (isset($_POST["$input2"])){ $sql = "SELECT SQL_CALC_FOUND_ROWS * FROM MAIN2"; } //Connect MySQL Server $my_Con = mysql_connect($url,$user,$pass); mysql_query("SET NAMES utf8",$my_Con); if ($my_Con == false){ die("MySQL Server接続に失敗しました。"); } //Connect MySQL DataBase if (!mysql_select_db($db,$my_Con)){ die("MySQL DataBase選択に失敗しました。"); } //MySQL Deta Read $my_Row = mysql_query($sql,$my_Con); if (!$my_Row){ die(mysql_error()); } $a = 1; while ($row = mysql_fetch_array($my_Row) or $a <= 50) { echo ' <p>'; echo ' A'.$a.':<input name="date" type="text" size="4" value="'.$row["a"].'">'; echo ' B'.$a.':<input name="date" type="text" size="4" value="'.$row["b"].'">'; echo ' C'.$a.':<input type="checkbox" name="example"'.check($row["c"]).'>'; echo ' D'.$a.':<input type="checkbox" name="example"'.check($row["d"]).'>'; echo ' </p>'; $a++; } //Close MySQL Server $my_Con = mysql_close($my_Con); if (!$my_Con) { exit("MySQL Server閉じられませんでした。"); } ?> ----------------------------- この状態で送信側のボタンをクリックすると、input.php側では”Query was empty”とエラーがでます。 送信側の2つあるボタンによって表示されるテーブルを変えたいのですが、何が原因なのでしょうか? そもそもSQLの内容をif文での条件分岐は出来ないのでしょうか? 最近PHPを勉強し出した初心者です。 出来れば分かりやすく教えていただけないでしょうか。 よろしくお願い致します!

    • ベストアンサー
    • PHP
  • PHPで動的URLを静的URLに変換するには

    PHPで動的URLを静的URLに変換するやり方を教えてください。 <form method="GET" action="aaa/bbb"> <input type="checkbox" name="ad" value="0"> <input type="checkbox" name="ad" value="1"> <input type="checkbox" name="ad" value="2"> <input type="checkbox" name="sb" value="0"> <input type="checkbox" name="sb" value="1"> <input type="checkbox" name="sb" value="2"> <input type="submit" value="送信"> </form> 上記のフォームからチェックボックスを複数選択してsubmitしたとき、 ブラウザのURLはhttp://www.hogehoge.com/aaa/bbb?ad=1&sb=2 となっていたとします、 これをhttp://www.hogehoge.com/aaa/bbb/1/2 と書き換えるにはどんなPHPスクリプトを書けばよいのでしょうか? 実際はもっとチェックボックスの数が多いので、 mod_rewrite は不向きのように思います。 そうすると、path_info を使うのが良いと思うのですが、 具体的にどのようにコーディングすればいいか分かりません。 お手数ですが、回答をお願いいたします。

    • ベストアンサー
    • PHP
  • phpに関する質問

    phpでフォームに入力して送信ボタンを押したらアンケートの集計をphpの方に出力するプログラムを作っているのですがhtmlのほうは問題なく動くのですがphpのほうが入力したものが反映されなくて非常にこまっていますどなたかたすけてください ここからhtml <html> <p> </p> <h3>アンケート</h3> <form name="form" action="kadai.php" method="GET"> <p> お名前を入力して下さい:<br> <input type="text" name="simei"> </p> <p> 性別を選んで下さい。<br> <input type="radio" name="gender" value="男性">男性です<br> <input type="radio" name="gender" value="女性">女性です<br> </p> <p> この~を何で知りましたか?<br> <input type="checkbox" name="check1" value="メディア媒体"/> メディア媒体で<br> <input type="checkbox" name="check2" value="イラスト"/> イラストで<br> <input type="checkbox" name="check3" value="その他"/> その他<br> </p> <p> 最近ハマっていることは?<br> <input type="checkbox" name="check4" value="サークル、部活"/> 部活など<br> <input type="checkbox" name="check5" value="得にない"/> 得にない<br> <input type="checkbox" name="check6" value="その他"/> その他<br> </p> <p> <input type="submit" name="submit" value="上記内容で送信"> </p> </form> </body> </html> ここからphp <html> <p> </p> <h3>アンケート</h3> <p> <b>下記の内容でお問合せを受付けました。<br> ありがとうございました。</b> </p> <p> <b>お名前:</b><br> <?php print( $_REQUEST["simei"] ); ?> </p> <p> <b>性別:</b><br> <?php print( $_REQUEST["gender"] ); ?> </p> <p> <b>この~を何で知りましたか:</b><br> <?php print( $_REQUEST["check1"] ); ?><br> <?php print( $_REQUEST["check2"] ); ?><br> <?php print( $_REQUEST["check3"] ); ?><br> </p> <p> <b>最近ハマっていることは:</b><br> <?php print( $_REQUEST["check4"] ); ?><br> <?php print( $_REQUEST["check5"] ); ?><br> <?php print( $_REQUEST["check6"] ); ?><br> </p> <p> </body> </html>

    • ベストアンサー
    • PHP
  • [PHP初心者] フォームのエラーチェック

    PHPやデータベースに全く疎い者です。 皆様にご指導頂きたく投稿致します。質問内容もレベルが低いですがどうが宜しくお願いします。 メールフォームにてフォームのボタンを押下し、 エラーチェックをして、エラー項目を同一画面上の上の辺りに表示させたいのですが、、参考書を読んだり、過去スレを拝見しても、どうもわかりません。 <body> //↓この辺をどう書けばいいのか、さっぱりなんです。 <?php if(isset($_POST['mailform'])) { if($_POST['name'] == "") { echo("名前を入力して下さい。<br>"); }} ?> //↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ <form method="POST" action="kakunin.php"> <table border="0" cellpadding="5"> <tr> <td colspan="2"></td> </tr> <tr> <td>名前</td> <td><input type="text" name="name" size="20"></td> </tr> <tr> <td>メールアドレス</td> <td><input name="mail" type="text" id="mail" size="20"></td> </tr> <tr> <td>項目</td> <td>     <input type="checkbox" name="check[]" value="PHP">PHP <input type="checkbox" name="check[]" value="Perl">Perl <input type="checkbox" name="check[]" value="ASP">ASP <input type="checkbox" name="check[]" value="JSP">JSP</td> </tr> <tr> <td>お問い合わせ内容</td> <td><textarea rows="5" name="naiyou" cols="40"></textarea></td> </tr> <tr> <td colspan="2"><input name="mailform" type="submit" id="mailform" value="::入力内容を確認::">  <input type="reset" name="Submit" value="リセット"></td> </tr> </table> </form> </body>

    • 締切済み
    • PHP
  • PHP

    PHPで <p>曜日</p> <p> <input type="checkbox" name="youbi[]" value="1" <?php if(strstr($result[4],'1')) echo"checked"; ?>>月 <input type="checkbox" name="youbi[]" value="2" <?php if(strstr($result[4], '2')) echo"checked"; ?>>火 <input type="checkbox" name="youbi[]" value="3" <?php if(strstr($result[4],'3')) echo"checked"; ?>>水 <input type="checkbox" name="youbi[]" value="4" <?php if(strstr($result[4],'4')) echo"checked"; ?>>木 <input type="checkbox" name="youbi[]" value="5" <?php if(strstr($result[4],'5')) echo"checked"; ?>>金 <input type="checkbox" name="youbi[]" value="6" <?php if(strstr($result[4],'6')) echo"checked"; ?>>土 <input type="checkbox" name="youbi[]" value="0" <?php if(strstr($result[4],'0')) echo"checked"; ?>>日 </p> <p>時間</p> <p> <input type="submit" value="設定" /> とやると日曜日を選択してsubmitするとチェックが外れます。なぜでしょうか?

    • ベストアンサー
    • PHP
  • phpでのメールフォームの作成について

    HTMLで <form action="mail.php" method="post"> <input name="aaa" type="checkbox" id="aaa" value="AAA" checked> <input name="bbb" type="checkbox" id="bbb" value="BBB" checked> <input name="ccc" type="checkbox" id="ccc" value="CCC" checked> </form> として、次に進むボタンを押すとmail.phpに飛び mail.phpでは、チェックされたものだけを表示したいのですが、どうすればよいでしょうか? もし、AAAとBBBが選ばれたら あなたが選んだのは AAA、BBBです。 と表示したいです。そのあとにメールフォームを続けるつもりです。 ご教授よろしくお願いします。

    • 締切済み
    • PHP
  • PHP更新フォーム チェックボックス

    入力フォームにて、チェックボックスがあり、チェック送信すると"済"という文字をDBに格納します。 <input type='checkbox' name='check' value='済'> DBに済が格納されていたら、更新フォームのチェックボックスに、チェックが入ってる状態に したのですが、どのようにしたら良いでしょうか? <input type="text" name="checkbox" value="<?php print( $row->checkbox); ?>"> のようにしてもうまくいきません。 ご教授おねがいします。

    • 締切済み
    • PHP
  • HTMLをおしえてください。

    こちらはPC初心者です。 HTMLここまでつくりました。 名前 <INPUT TYPE="text" NAME="name"><br> ハンドルネーム <INPUT TYPE="text" NAME="name"><br> 好きな色は? <SELECT NAME="color"> <OPTION SELECTED>選んでください。</OPTION> <OPTION VALUE="red">赤</OPTION> <OPTION VALUE="blue">青</OPTION> <OPTION VALUE="yellow">黄</OPTION> </SELECT><br> 行きたい国は?<br> <INPUT TYPE="checkbox" NAME="usa" VALUE="on">アメリカ<br> <INPUT TYPE="checkbox" NAME="china" VALUE="on">中国<br> <INPUT TYPE="checkbox" NAME="france" VALUE="on">フランス<br> <INPUT TYPE="checkbox" NAME="germany" VALUE="on">ドイツ<br> 感想<br><TEXTAREA NAME="comment" ROWS="4" COLS="30"></TEXTAREA><br> <INPUT TYPE="submit" VALUE="送信"><INPUT TYPE="reset" VALUE="書き直し"> </FORM> </BODY> 送信ボタンをおすとアウトルックが起動するようにしたいです。 書き直しボタンを押すと全部リセットできるようにしたいです。 どうかご指導の方をよろしくおねがいします。

専門家に質問してみよう