入力フォームとチェックボックスの値について質問

このQ&Aのポイント
  • 入力フォームと確認画面、送信画面でのチェックボックスの値について質問です。
  • 入力フォームには月、火、水のチェックボックスがあります。
  • 確認画面では選択されたチェックボックスの値が表示され、送信画面ではDBに登録する方法についての質問です。
回答を見る
  • ベストアンサー

入力フォーム→確認画面→送信画面でのチェックボックスの値について質問で

入力フォーム→確認画面→送信画面でのチェックボックスの値について質問です。 1、入力フォーム(form.html) <form name="form" action="confirm.php" method="post"> <input type="checkbox" name="week[]" value="月" checked >月 <input type="checkbox" name="week[]" value="火" checked >火 <input type="checkbox" name="week[]" value="水" checked >水 <input type="submit" value="入力内容を確認する"> </form> 2、確認画面(confirm.php) <form action="insert.php" method="post"> if( isset( $_POST['traffic'] )) {   for( $i = 0; $i < count( $_POST['traffic'] ); $i++ ) {     print $_POST['traffic'][$i]."<br />";   } } <input type="button" value="内容を修正する" onClick="JavaScript:history.back()">; <input type="submit" value="この内容で送信する"> </form> 表示例) 月 水 3、送信完了画面(insert.php) 「送信完了しました。」と表示。 ここでDB登録、内容のメール送信を行いますが、 DBに登録する際、 月、水をそのまま登録するのではなくて 月→true 火→false 水→true とチェックされたものを「true」 チェックされなかったものを「false」とINSERTするにはどうすればできますか? true,falseで登録するのはあとで集計しやすくするためです。 DB構成は(MySQL5x) mon BOOL tue BOOL wed BOOL

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

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

  • ベストアンサー
回答No.1

そういった形で格納したいのならチェックボックスの名前を name="week[]"ではなく <input type="checkbox" name="mon" value="月" checked >月 <input type="checkbox" name="tue" value="火" checked >火 <input type="checkbox" name="wed" value="水" checked >水 などにして個別に確認されてはどうでしょう?

s_mac_ts
質問者

お礼

なるほど。やってみます。 ありがとうございました。

関連するQ&A

  • 送信後のチェックボックスの表示

    最初の画面でAにチェックされているとします。 そのあとに、AとBをチェックしたあとにSubmitで送信します。 送信したあとに、AとBにチェックした最初の画面を表示させたいときは、 どんな風にすればよいのでしょうか。 今は・・・ If Request.Form="" <input type="checkbox" name="test" value="A" checked>A <input type="checkbox" name="test" value="B">B <input type="checkbox" name="test" value="C">C Else Select Request.Form("test") Case "A" <input type="checkbox" name="test" value="A" checked>A <input type="checkbox" name="test" value="B">B <input type="checkbox" name="test" value="C">C Case "B" <input type="checkbox" name="test" value="A">A <input type="checkbox" name="test" value="B" checked>B <input type="checkbox" name="test" value="C">C Case "C" <input type="checkbox" name="test" value="A">A <input type="checkbox" name="test" value="B">B <input type="checkbox" name="test" value="C" checked>C   ・・・ End Select End If というように、全ての場合のときに"checke"をつけて表示させています。 もっと、効率のよい書き方はないものでしょうか?

  • チェックボックスのデータの受け取り方について

    以下のようなチェックボックスを作ったとき、 test.phpではどうやって受け取ればよいのでしょうか? nameがそれぞれ違う場合は分かるのですが... 教えてください。 <form method="POST" action="test.php"> <input type="checkbox" name="color" value="red">赤</input> <input type="checkbox" name="color" value="blue">青</input> <input type="checkbox" name="color" value="white">白</input> <input type="checkbox" name="color" value="black">黒</input> <input type="submit" value="送信" > </form>

    • ベストアンサー
    • PHP
  • チェックボックスの値を(1,0)のようにすべて送信する方法

    formをsubmitすると、チェックボックスの値は、 チェックされた項目のvalue値が配列の形で送信されますよね。 たとえば、 <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="111" CHECKED> <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="222" CHECKED> <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="333" CHECKED> <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="444"> <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="555" CHECKED> だと、 [111,222,333,555] のように。 今回は、表形式でデータを表示し、 チェックされた行の、他の列の値(フィールド)も取得したいのです。 他の列のフィールドは、チェックされていない行でも入力されている可能性があります。 そうすると、そのフィールドの値も配列にして送ってしまうと、 チェックボックスの値と数が合わなくなり、横方向での関連付けが出来なくなってしまいます。 なので、チェックボックスの送信値を、配列の要素数は全件で、 チェックされたかされていないかということが分かるように することは不可能でしょうか? JavaScriptは規約により、使うことが出来ない状況で困っています(><) 何か案があれば教えてください。

    • ベストアンサー
    • HTML
  • チェックボックスのチェックについて

    submit時に一つでもチェックがなければアラートを表示 チェックがあれば進む・・・としたいです。 <form action=next.html name=form1> <input type=checkbox name=checkbox1 value=1> <input type=checkbox name=checkbox2 value=2> <input type=checkbox name=checkbox3 value=3> <input type=checkbox name=checkbox4 value=4> <input type=checkbox name=checkbox5 value=5> ~以下50まで続きます <input type=submit value=submit> </form> function countChecked(form1) { var total = 0; var max = 50; for (var index = 0; index < form1.checkbox.length; index++) { total += form1.checkbox[index].checked ? 1 : 0; } if(countChecked(document.form1)) > 0) { return true; } else { alert("no"); return false; } return(total); } 過去に似たような質問を参考に作ってみましたがダメでした。 チェックボックスの名前の付け方が悪いのでしょうか。

  • チェックボックスの未入力チェック

    ざっとですけれども <form action="**" name="myform" onsubmit="return Check()" method=post> <input type="checkbox" name="Erasedata" id="Erasedata" value="1" > <input type="checkbox" name="Erasedata" id="Erasedata" value="2" > ・・・ <input type="checkbox" name="Erasedata" id="Erasedata" value="5" > <input type="submit" value="選択されたものを削除する"> このようなチェックボックスがあったとして function Check() { for (i=0;i<document.myform.length;i++)  {   if(document.myform.Erasedata[i].checked==true) {return true;}  } alert("どこかにチェックを入れて下さい "); return false; } といった感じで未入力チェックをしています。 チェックボックスが複数の場合はうまく動くのですが、チェックボックスがひとつだとうまくいきません。スクリプトで何か問題があるようでしたらご指摘お願いできませんでしょうか。よろしくお願いいたします。

  • チェックボックスでの送信

    チェックボックスにチェックを入れて送信したときは1を チェックを入れずに送信したときは0をPHP側で受けたいのですが チェックを入れずに送信するとPHP側で$_POST['flg']を取得できないため、エラーになります。 方法はないでしょうか? <form action="test.php" method="post"> フラグ:<input type="checkbox" name="flg" value="1" /> </form> === test.php =========== <?php $flg = $_POST['flg']; print($flg); ?>

    • ベストアンサー
    • PHP
  • 複数あるチェックボックスの入力チェックするには?

    チェックボックスの入力チェックスクリプトを探しており、下記のようなスクリプトをネット検索で見つけました。 <!-- <script type="text/javascript"> function chNull(msg,obj) { if(!obj) return true; if((obj.type || obj[0].type) == 'checkbox'){ var flag = 0; if(obj.length){ for(var i=0; i<obj.length; i++) { if(obj[i].checked) flag = 1; } } else { if(obj.checked) flag = 1; } if(flag == 0) { alert(msg + 'を選択してください。'); return false; } } return true; } --> </script> <form method="POST" action="■.cgi" onSubmit="return chNull('チェックボックス',a);"> <input type="checkbox" name="a" value="A1" />A1 <input type="checkbox" name="a" value="A2" />A2 </form> 同じnameのチェックボックス群がひとつしかないときはこれで問題ないのですが、 下記のようにnameが複数ある場合にはこのスクリプトのどの部分を変えればよいのでしょうか? <input type="checkbox" name="a" value="A1" />A1 <input type="checkbox" name="a" value="A2" />A2 <input type="checkbox" name="b" value="B1" />B1 <input type="checkbox" name="b" value="B2" />B2 <input type="checkbox" name="c" value="C1" />C1 <input type="checkbox" name="c" value="C2" />C2 できればこのスクリプトをベースとして使用したいと思っています。どなたかお分かりの方がいらっしゃいましたらお教え下さいませ。 よろしくお願い致します。

  • チェックボックスの初期選択と選択保持

    複数のチェックボックスのうちどれかを初期選択させ、ボタン押下後は選択保持をさせたいです。 片方のみならできるのですが、どなたかご教授いただけるとうれしいです。 現在のソースはこんな感じになっていて選択したものの保持はできるのですが、初期選択ができていません。よろしくおねがいします。 <html> <body> <form name="form" method="post"> <?php test1() ?> test1 <?php test2() ?> test2 <?php test3() ?> test3<br><br> <input type="submit" name="button" value="button"> </form> <?php function test1(){ if ($_POST['test1']){ echo "<input type=\"checkbox\" name=\"test1\" checked>"; }else{ echo "<input type=\"checkbox\" name=\"test1\">"; } } function test2(){ if ($_POST['test2']){ echo "<input type=\"checkbox\" name=\"test2\" checked>"; }else{ echo "<input type=\"checkbox\" name=\"test2\">"; } } function test3(){ if ($_POST['test3']){ echo "<input type=\"checkbox\" name=\"test3\" checked>"; }else{ echo "<input type=\"checkbox\" name=\"test3\">"; } } ?> </body> </html>

    • 締切済み
    • PHP
  • formから送信する値について

    nameを同じくする複数のチェックボックスのチェック項目について valueを「+」や「,」でつなげて送信したいです 例えば <input type="checkbox" name="color" value="red" checked > <input type="checkbox" name="color" value="blue" checked> <input type="checkbox" name="color" value="green" checked > <input type="checkbox" name="option" value="A" checked > <input type="checkbox" name="option" value="B" checked > <input type="checkbox" name="option" value="C" checked > ならば、submitされるURL変数は ?color=red,blue,green&option=A+B+C になるようにしたいのです よろしくお願いします

    • ベストアンサー
    • HTML
  • HTMLフォームで複数選択のチェックボックスの値をまとめてから送信したい

    下のようなフォームがあります。 <form method="get" action="" >  <input type="checkbox" name="item" value="1">item1</input>  <input type="checkbox" name="item" value="2">item2</input>  <input type="checkbox" name="item" value="3">item3</input>  <input type="submit" value="送信" /> </form> これで例えばすべてのチェックボックスをチェックして送信した場合、 ?item=1&item=2&item=3 となりますが、これを ?item=1,2,3 とする方法はありますでしょうか? 都合により、method="get"の部分は変えられず、受け取ってからの処理(value値を配列にして受け取ってから展開するなど)も変更できません。 ご教授いただけると助かります。

    • ベストアンサー
    • PHP

専門家に質問してみよう