• ベストアンサー

チェックボックスがチェックされていない場合エラー

そこで チェックボックス側でチェックされてない場合、全てのvalueを送るみたいな処理は出来ないでしょうか? 受け取り側のphpで何らかの処理をするしかないですか?

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

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

きちんとロジックを理解していればチェックしていなければ すべてが選ばれているのと同等になります。 <?PHP $sql="select * from test where 1"; if(isset($_REQUEST["hoge"])) $hoge=$_REQUEST["hoge"]; if(isset($hoge) and is_array($hoge)){ foreach($hoge as $key=>$val){ $sql.=($key==0)?" AND hoge IN (":","; $sql.="'".mysql_real_escape_string($val)."'"; if($key==count($hoge)-1) $sql.=")"; } } print $sql; ?> <form> <input type="checkbox" name="hoge[]" value="1">1 <input type="checkbox" name="hoge[]" value="2">2 <input type="checkbox" name="hoge[]" value="3">3 <input type="submit" value="go"> </form>

noname#142312
質問者

お礼

ありがとうございます。試してみます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • pQ2MZc53
  • ベストアンサー率12% (1/8)
回答No.2

第一、エラーってたとえば、Warning・・・ とか出ているじゃないですか? エラーメッセージってそもそも「ここがおかしいですよ!」ってわざわざ書いてくれているものですよ。 エラーメッセージが出ているんなら、せめてそれをコピペすると答えやすいんですが。 例文って言われてもね・・・。 なんかせっかくのプログラミングの楽しみをあなたから奪ってしまうようで、なんか気が引けるんですが?

全文を見る
すると、全ての回答が全文表示されます。
  • pQ2MZc53
  • ベストアンサー率12% (1/8)
回答No.1

そうですね。 > チェックボックス側でチェックされてない場合、全てのvalueを送るみたいな処理は出来ないでしょうか? はできないです。 > 受け取り側のphpで何らかの処理をするしかないですか? こっちのほうが正解です。変数がセットされていないときの条件分岐が必要になります。

noname#142312
質問者

補足

良ければ例文お願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • チェックボックスにチェックした場合エラーにならない方法

    プログラムは、ほぼ全く初心者なのですが、 フリーのメールフォームをダウンロードして、作りかえています。 http://cgis.biz/script_shop_mail/ PHPの書類があって、mail.phpと、conf.phpを一部さわりました。 メールフォームの一番下に、「注意事項」に同意する。という、チェックボックスを作りたくて、 下記のような記述を追加して、チェック項目は作れましたが... $html .= '<table>'."\n"; if($conf['show_check']) { $html .= '<tr>'."\n"; $html .= '<th>「注意事項」'.$mark[($conf['need_check'])].'</th>'."\n"; $html .= '<td><input type="checkbox" name="check" value="'.$C['check'].'" >「注意事項」に同意する。'."\n"; $html .= '</td>'."\n"; $html .= '</tr>'."\n"; } $html .= '</table>'."\n"; エラーメッセージ if(!$_POST['check']) { if($conf['show_check'] && $conf['need_check']) { $err .= '「注意事項」に同意する。にチェックをお願いします。<br>'; } } チェックボックスに、チェックしてもチェックしなくても、エラーメッセージが表示されてしまい、 送信できません。 チェックボックスにチェックした場合には、エラーメッセージが表示されないようにするには、 どうしたら良いのでしょうか。

    • ベストアンサー
    • PHP
  • チェックボックスの値

    チェックボックスの値を取得する方法を調べています。 サイトの例では、チェックボックスが全てTformという同一のフォーム内にあります。これが仮に異なるフォームにある場合、どのように処理したらいいのでしょうか? http://musashisakai.chiikihp.net/master/java/checkbox1.php#2 Tform1 Tform2 Tform3 Tform4 にそれぞれチェックボックスがある場合です。 もし分かる方がいましたら教えてください。 よろしくお願いします。

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

    チェックボックスにチェックを入れて送信したときは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
  • チェックボックスの入力チェックについて

    VB.NETに関する質問です。 画面の一覧(SPREAD等)にチェックボックスがあり、 全てのチェックボックスにチェックがついているかどうかを調べたいです。 「もし一つでもチェックがついていた場合は、チェック処理から即座に抜け、 もし全てのチェックがついていない場合は、エラーメッセージを出力する」 という動作を求めています。 例えば、 For intRowIndex As integer = 0 To MaxRowCount - 1 If CBool(Cells(intRowIndex, checkboxColumn).Value) Then '' チェックがついている場合 Exit For Else If intRowIndex = MaxRowCount Then '' エラーメッセージ出力 End If End If Next という処理で求める動きは可能ですが、 もう少しスマートなロジックがないかと考えています。 どなたか教えて頂けませんでしょうか?

  • チェックボックスで渡ってきたデータを一つのフィールド(や変数)で処理したい

    特にPHPに限った質問というわけではないのですが、複数のチェックボックスからのデータをmySQLにためて、ユーザーが検索できるプログラムを作っています。 チェックボックスの数があまり多くないので、項目ごとにフィールドを追加してやってもいいのですが、あまりスマートではないし、後で項目の追加があった場合に対応できないので、一つのフィールドにすべてのチェックボックスのデータを納めたいと思っています。 一般的にこのような場合、どのように処理するのでしょうか? 方法を考えたのですが、チェックボックスのvalueに value=1 value=2 value=4 value=8・・・として、チェックがある項目は全部足して2進数に変換してDBに登録し、(例えば、value=1とValue=8にチェックがあったら9となり、2進数では1001でonが判別できます)ユーザーが検索するときには同じく検索条件を2進数に変換して論理積で1以上のものを抜き出せば自分の想像通りの動きはしそうです。 ただ、DBから抜き出すときにいちいち論理積でパターンマッチしたものを抜き出す必要があるので、あまり高速ではない(?)&SQL文一発で書けないのでちょっと処理が面倒かなと思っています。 ちょっと説明がうまくできなくてわかりづらいとは思いますが、何かいい方法はないでしょうか?

    • ベストアンサー
    • PHP
  • チェックボックスのうちひとつでもチェックがなければエラー

    チェックボックスが複数個(5~6個)あります。 hajime.html <form action="niban.php" method="post"> <input type="checkbox" value="A" name="CHK1" /> <input type="checkbox" value="B" name="CHK2" /> <input type="checkbox" value="C" name="CHK3" /> <input type="checkbox" value="D" name="CHK4" /> <input type="checkbox" value="E" name="CHK5" /> <input type="checkbox" value="F" name="CHK6" /> </form> ●このA~Fのうち、ひとつでもチェックされていなければ チェックしてください。とエラー表示させたいのですが… ●次のページではこのようにデータを受取していします。 niban.php// フォームの値取得は下記のように行っています。 if ($_SERVER["REQUEST_METHOD"] == "POST") { foreach($_POST as $k => $v){ if (get_magic_quotes_gpc()) { $v = stripslashes($v); } $v = htmlspecialchars($v); $v = addslashes($v); $$k = $v; } } else { exit(); } $ErrFlg = 0;(エラーの時は$ErrFlgを1にします) ●エラー構文のサンプル↓ if ($name == "" ) { echo "<p>名前を入力してください。"; $ErrFlg = 1; } どうぞお力をおかしください

    • 締切済み
    • PHP
  • チェックボックスについて

    こんばんは。いつもお世話になっておりますが、こちら(JavaScript)では、初めての投函です。 よくヤフーやホットメールなどのwebmailの受信ボックスなどに、削除するためのチェックボックスが備わっておりますが、全てのチェックを入れるために、最初の一行目のチェックボックスにチェックを入れることで全てにチェック。チェックを外す事で全てを外す。という動作が行われていると思います。 私、PHPの方ではよく質問させていただく事もあり、お恥ずかしいながら、上記質問をPHPで・・と思っていたら、これら動作はJavaScriptであることをお教え頂きました。 これまでJavaScriptには無縁であったこともあり、色々なサイトにお邪魔しているものの、設定ボタン、解除ボタンによる設定・解除の説明はあるものの、チェックボックスによる、これらの動作の説明がなく、改めてこちらにて質問させて頂くに至りました。 色々と試してはいるものの、チェックボックスにチェックを入れると全てにチェックが入るが、解除するまでに至っておりません。 お忙しい中恐縮ですが、ご指導のほど宜しくお願い申し上げます。

  • チェックボックスデータを引き継ぐ

    index.htmlのチェックボックスのデータをa.phpで$jyusyoPOSTで受け取りデータベースからデータを取りだし表示させます。そしてb.phpにもチェックボックスの条件で表示させたいです。以前お聞きした際hiddenで出力し、取得しろとの事でしたが詳しく知りたいです。a.phpでどのように出力しb.phpでどのように取得するか詳しく教えて下さい。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • チェックボックスから複数のvalueを取り出す

    HTMLフォームから、action="file.php"でデータの受け渡し→PHPで送られてきたvalueに応じて文章を出力、というプログラムを作っています。 例: グループAのラジオボタン1にチェック、送信 →グループAで押されたラジオボタンを送信されたvalueで判別、この場合はvalue==A →value==Aの場合に表示する文章を変数に受け渡し、その変数で表示 ラジオボタン、テキストボックスのvalueは$_POST['XXX']で取り出せたのですが、チェックボックスのデータだけが取り出せません。こちらの質問を検索したとき、多次元配列という言葉を見かけたのですが、いまいちよく分かりませんでした。 チェックボックスの複数のvalueで、上記の例のような動きを実現させるにはどうしたらいいでしょうか。どなたかご教授ください。

    • ベストアンサー
    • PHP
  • phpでチェックボックスでの値の表示について

    HTMLで作成したテキスト、セレクト、チェックボックスなどに、選択されたもの全てをPOST送信で受け取って PHPにてパラメータをチェックしてから 確認画面(HTML)に表示してPHPにてDB登録するというプログラムを作ってます。 HTML側で <input type="checkbox" name="genre[0]" value="1" >国語 <input type="checkbox" name="genre[1]" value="2" >算数 <input type="checkbox" name="genre[2]" value="3" >理科  <input type="checkbox" name="genre[3]" value="4" >社会 として例えば、 <?php $genre = $_POST["genre"]; foreach ($genre as $key => $value){ print($value); } ?> で表示するとチェックした数字が表示されます。 (国語をチェックした場合 1) これを 国語 と表示させるにはどうすればいいんでしょうか? DBに登録する際は数字でいいんですが。

    • ベストアンサー
    • PHP