チェックボックスが選択できない原因と解決方法

このQ&Aのポイント
  • PHP smartyで4×6のチェックボックスのリストを表示していますが、上の2行(8つのチェックボックス)が、初期表示から3分以上たたないと、選択できない状態になります。
  • ブラウザはIE6.0では正常に動作せず、原因が不明の状態です。どのようにすればよろしいでしょうか。
  • Mozilla Firefox2.0では正常に動作します。
回答を見る
  • ベストアンサー

チェックボックスが選択させない

PHP smartyで4×6のチェックボックスのリストを表示しています。 しかし、上の2行(8つのチェックボックス)が、 初期表示から3分以上たたないと、選択できない状態になります。 ブラウザはIE6.0です。 原因が不明の状態です。どのようにすればよろしいでしょうか。 Mozilla Firefox2.0では正常に動作します。 <table border=0 class="tabledetails"> <{section name="index" loop=$data start="0" step="1" max="10"}> <tr> <th> <{$data[index].name_1}> </th> <td> <{if $data[index].name_1 <> '' }> <{if ($curentview == 'CHECK' or (($modeid == 'SERH1') or ($modeid == 'SERH2') or ($modeid == 'SERH3') or ($modeid == 'SERH4'))) }> <input type="hidden" name='code_<{$data[index].code_1}>' <{if $data[index].name_1_flg}>value='on'<{/if}> > <{if $data[index].name_1_flg}><img src="./images/reten.png" /><{/if}> <{else}> <input type="checkbox" name='code_<{$data[index].code_1}>' <{if $data[index].name_1_flg}>CHECKED<{/if}> > <{/if}> <{/if}> </td> <th> <{$data[index].name_2}> </th> <td> <{if $data[index].name_2 <> '' }> <{if ($curentview == 'CHECK' or (($modeid == 'SERH1') or ($modeid == 'SERH2') or ($modeid == 'SERH3') or ($modeid == 'SERH4'))) }> <input type="hidden" name='code_<{$data[index].code_2}>' <{if $data[index].name_2_flg}>value='on'<{/if}> > <{if $data[index].name_2_flg}><img src="./images/reten.png" /><{/if}> <{else}> <input type="checkbox" name='code_<{$data[index].code_2}>' <{if $data[index].name_2_flg}>CHECKED<{/if}> > <{/if}> <{/if}> </td> <th> <{$data[index].name_3}> </th> <td> <{if $data[index].name_3 <> '' }> <{if ($curentview == 'CHECK' or (($modeid == 'SERH1') or ($modeid == 'SERH2') or ($modeid == 'SERH3') or ($modeid == 'SERH4'))) }> <input type="hidden" name='code_<{$data[index].code_3}>' <{if $data[index].name_3_flg}>value='on'<{/if}> > <{if $data[index].name_3_flg}><img src="./images/reten.png" /><{/if}> <{else}> <input type="checkbox" name='code_<{$data[index].code_3}>' <{if $data[index].name_3_flg}>CHECKED<{/if}> > <{/if}> <{/if}> </td> <th> <{$data[index].name_4}> </th> <td> <{if $data[index].name_4 <> '' }> <{if ($curentview == 'CHECK' or (($modeid == 'SERH1') or ($modeid == 'SERH2') or ($modeid == 'SERH3') or ($modeid == 'SERH4'))) }> <input type="hidden" name='code_<{$data[index].code_4}>' <{if $data[index].name_4_flg}>value='on'<{/if}> > <{if $data[index].name_4_flg}><img src="./images/reten.png" /><{/if}> <{else}> <input type="checkbox" name='code_<{$data[index].code_4}>' <{if $data[index].name_4_flg}>CHECKED<{/if}> > <{/if}> <{/if}> </td> </tr> <{/section}> </table>

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

  • ベストアンサー
noname#119012
noname#119012
回答No.2

ANo.1です。 つまりHTMLが完全に読み込まれていないから押せないという可能性は無いわけですね。(ちなみにdisabled状態になっているのでしょうか?) firefoxで出力されたHTMLとieで出力されたHTMLもdiffで一致なのですよね。。。 うーむ。 提示頂いたHTMLを自分のPC(IE6)で試してみましたが再現しませんでした。 その他のソースが影響しているのでしょうかね。。 自分なら・・・ 単純な手ですが、ある部分を消して試して、別の部分を消して試して・・・で絞り込むかな・・・。 自分の経験値ではここが限界のようです。 力になれずに申し訳ございません。頑張ってください。

その他の回答 (2)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.3

たぶん、私にはわからないけど Javascriptのカテゴリに投稿しているという事は何かJavascriptが関係している? classが付いているという事はcss(ファイルの読み込み)が関係している? 解決するまで「何か」を削って試していくと何が問題かわかるかも・・・しれないですね。

noname#119012
noname#119012
回答No.1

経験5年目のWEB系エンジニアです。が、PHP歴は浅いです。 なので的確な事は言えないと思いますのでご参考程度にお願いします。 自分も経験がありますが、 IEでは上手く表示されるのにFireFoxでは・・・というのはままありますね^^; 逆もありますが。 出力されたHTMLの文法に間違いはないのですよね? まずは文法チェッカなどを使ってW3Cの規約に沿っているか確認してみては如何でしょう。 大体のブラウザは基本的にW3Cに沿って作られていると思うので。 あと念のためですが、画面上に出ている不都合はサーバでPHP→HTMLに変換されて返ってきたHTMLを再現した結果です。 なのでデバッグを進めるにあたり、最初に気にすべきは出力されたHTMLになると思います。 3分・・・とのことですので、 3分経たない時点でのHTMLと、 3分経過後のHTMLをdiffしてみるのも解決の手口になるかもしれません。

is_rive
質問者

補足

3分たった状態でも、同じHTMLになると思います。 以下、サーバーから出力したHTMLです。 文法の調べましたが、問題ないようです。 <table border=0 class="tabledetails"> <tr> <th> あ </th> <td> <input type="checkbox" name='code_1' > </td> <th> い </th> <td> <input type="checkbox" name='code_2' > </td> <th> う </th> <td> <input type="checkbox" name='code_3' > </td> <th> え </th> <td> <input type="checkbox" name='code_4' > </td> </tr> <tr> <th> お </th> <td> <input type="checkbox" name='code_5' > </td> <th> か </th> <td> <input type="checkbox" name='code_6' > </td> <th> き </th> <td> <input type="checkbox" name='code_7' > </td> <th> く </th> <td> <input type="checkbox" name='code_8' > </td> </tr> <tr> <th> け </th> <td> <input type="checkbox" name='code_9' > </td> <th> こ </th> <td> <input type="checkbox" name='code_10' > </td> <th> さ </th> <td> <input type="checkbox" name='code_11' > </td> <th> し </th> <td> <input type="checkbox" name='code_12' > </td> </tr> <tr> <th> す </th> <td> <input type="checkbox" name='code_13' > </td> <th> せ </th> <td> <input type="checkbox" name='code_14' > </td> <th> そ </th> <td> <input type="checkbox" name='code_15' > </td> <th> た </th> <td> <input type="checkbox" name='code_16' > </td> </tr> <tr> <th> ち </th> <td> <input type="checkbox" name='code_17' > </td> <th> つ </th> <td> <input type="checkbox" name='code_18' > </td> <th> て </th> <td> <input type="checkbox" name='code_19' > </td> <th> と </th> <td> <input type="checkbox" name='code_20' > </td> </tr> <tr> <th> な </th> <td> <input type="checkbox" name='code_21' > </td> <th> に </th> <td> <input type="checkbox" name='code_22' > </td> <th> ぬ </th> <td> <input type="checkbox" name='code_23' > </td> <th> ね </th> <td> <input type="checkbox" name='code_24' > </td> </tr> </table>

関連するQ&A

  • 複数のチェックボックスをチェックしたい

    質問させてください。 複数のチェックボックスを項目別に全てチェックするようなjqueryの書き方をご教授いただきたいです。 <table> <tr> <td> <input type="checkbox" name="" />まとめてチェック </td> </tr> <tr> <td> <li><input type="checkbox" name="" value="" />a</li> <li><input type="checkbox" name="" value="" />b</li> <li><input type="checkbox" name="" value="" />c</li> <li><input type="checkbox" name="" value="" />d</li> </td> </tr> <tr> <td> <input type="checkbox" name="" />まとめてチェック </td> </tr> <tr> <td> <li><input type="checkbox" name="" value="" />e</li> <li><input type="checkbox" name="" value="" />f</li> <li><input type="checkbox" name="" value="" />g</li> <li><input type="checkbox" name="" value="" />h</li> </td> </tr> <tr> <td> <input type="checkbox" name="" />まとめてチェック </td> </tr> <tr> <td> <li><input type="checkbox" name="" value="" />i</li> <li><input type="checkbox" name="" value="" />j</li> <li><input type="checkbox" name="" value="" />k</li> <li><input type="checkbox" name="" value="" />l</li> </td> </tr> </table> 上記のようにそれぞれの項目に「まとめてチェック」のチェックボックスがあり、 そこに該当するチェック項目は全てチェックorチェックを外す っという挙動の実装を考えています。 jqueryでやりたいのですが、javascript、jqueryがかなり苦手でいまいちいきません。 ググって $(function(){ $('#all').click(function(){ if(this.checked){ $('#check input').attr('checked','checked'); }else{ $('#check input').removeAttr('checked'); } }); }); このソースを見つけたのですが、これだと一つの項目でしか実装できず 項目分このjqueryを書くのも余り良い書き方だと思えません。 どなたか、ご教授お願いいたします。

  • チェックボックスのチェックについて

    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); } 過去に似たような質問を参考に作ってみましたがダメでした。 チェックボックスの名前の付け方が悪いのでしょうか。

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

    複数のチェックボックスのうちどれかを初期選択させ、ボタン押下後は選択保持をさせたいです。 片方のみならできるのですが、どなたかご教授いただけるとうれしいです。 現在のソースはこんな感じになっていて選択したものの保持はできるのですが、初期選択ができていません。よろしくおねがいします。 <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
  • submitでチェックボックスが認識されない

    HTML(ASP)でプログラミングをしています。 入力フォームにチェックボックスが複数個あり、同一項目名称でインデックスをしようしていますが、ボタン押下時に遷移先のプログラムでインデックスエラーが発生し項目が認識されません。 デバッグの結果チェックボックスの項目が『Off』の場合に項目が認識されていない事がわかりました。 以前同様の画面を作成した時にはインデックスは使用していませんでしたが正常に機能していました。 チェックボックスではインデックスを使用するとエラーになる等のルールがあるのでしょうか? ご存知の方いらっしゃいましたらお教え願います。 OS:WIN2K DB:SQLServer2K プログラム抜粋 ▲入力フォーム▲ <form method=post name=form1 target=_top action="upd.asp">  <input type=checkbox name=outKa1 value="1" checked>  <input type=checkbox name=outKa2 value="1" checked>  <input type=checkbox name=outKa3 value="1" checked>  <input type=checkbox name=outKa1 value="1" checked>  <input type=checkbox name=outKa2 value="1" checked>  <input type=checkbox name=outKa3 value="1" checked>  <input type=submit value="送信"> </form> ▲upd.asp▲ <%  For intOcnt = 1 To 2   For intIcnt = 1 To 3    If Request.Form("outKa" & intIcnt)(intOcnt) = "1" Then     ■更新処理■    End If   Next  Next %> ■更新処理■上部のIF文で『インデックスが有効範囲にありません』とエラーになります。

    • ベストアンサー
    • HTML
  • チェックボックスの全選択/解除について

    お尋ねします。 チェックボックスの全選択/解除について 1画面にチェックボックスのグループが複数(store、item)あります。 下記のソースだと【store】の全選択を押下すると【store】【item】両方とも 全選択状態になります。 【store】の全選択/全解除は【store】のみ 【item】の全選択/全解除は【item】のみにしたいのですが どのようにするとよろしいのでしょうか? よろしくお願いします。 <SCRIPT TYPE="text/javascript"> <!-- function allcheck(targetForm,flag){  for(n=0;n<=targetForm.length-1;n++){   if(targetForm.elements[n].type == "checkbox"){    targetForm.elements[n].checked = flag;   }  } } --> </SCRIPT> <table width="70%" align = "center" cellspacing="0"> <form action="confirm.php" method="post" target="_blank"> <tr> <td align="center"> <input type="checkbox" name="store[]" value="1" />A店<br/> <input type="checkbox" name="store[]" value="2" />B店<br/> <input type="checkbox" name="store[]" value="3" />C店<br/> <input type="checkbox" name="store[]" value="4" />D店<br/> <input type="checkbox" name="store[]" value="5" />E店<br/> <input type="button" value="全選択" onClick="allcheck(this.form,true)"/><br> <input type="button" value="全解除" onClick="allcheck(this.form,false)"/> </td> <td align="center"> <input type="checkbox" name="item[]" value="1" />項目1<br/> <input type="checkbox" name="item[]" value="2" />項目2<br/> <input type="checkbox" name="item[]" value="3" />項目3<br/> <input type="checkbox" name="item[]" value="4" />項目4<br/> <input type="checkbox" name="item[]" value="5" />項目5<br/> <input type="button" value="全選択" onClick="allcheck(this.form,true)"/><br> <input type="button" value="全解除" onClick="allcheck(this.form,false)"/> </td> </tr> <tr align="center"> <td colspan="4"> <input type="submit" name="con" value="確認"> </td> </tr> </form> </table>

    • 締切済み
    • PHP
  • チェックボックス設定の方法教えてください

    チェックボックスの設定方法を教えてください。 項目1.大分類にチェックすると中分類と小分類にもチェックが入る。 項目2.中分類にチェックすると小分類にもチェックが入る。 項目2の設定はわかりますが、項目1の設定がどうしてもできません。 <script language=javascript> function allCheck(obj){ f=obj.form num=obj.name.replace("b","") for(var i=0;i<f.length;i++){ if(f[i].name=="s"+num) f[i].checked=obj.checked; } } </script> <FORM> <TABLE border=0> <TBODY> <TR> <TD class=color_1 rowSpan=4><INPUT onclick=allCheck(this) type=checkbox name=b1>大分類</TD> <TD class=color_1 rowSpan=4><INPUT onclick=allCheck(this) type=checkbox name=b1>中分類</TD> <TD class=color_1><INPUT type=checkbox name=s1>小分類</TD></TR> <TR> <TD class=color_2><INPUT type=checkbox name=s1>小分類</TD></TR> <TR> <TD class=color_1><INPUT type=checkbox name=s1>小分類</TD></TR> <TR> <TD class=color_2><INPUT type=checkbox name=s1>小分類</TD></TR> <TR> <TD class=color_1 rowSpan=3><INPUT onclick=allCheck(this) type=checkbox name=b2>中分類 <P></P></TD> <TD class=color_1><INPUT type=checkbox name=s2>小分類</TD></TR> <TR> <TD class=color_2><INPUT type=checkbox name=s2>小分類</TD></TR> <TR> <TD class=color_2><INPUT type=checkbox name=s2>小分類</TD></TR></TBODY></TABLE></FORM> すいませんが、教えて下さい。

  • チェックボックスのチェック処理

    HTMLでボタン押下時にチェックしたいことがあります。 ■カテゴリーA~Cで、カテゴリー毎に選択できるのは一つのみ  (例)「A1・あ」と「A2・お」が選択時はNG ■カテゴリーは最大2つまで選択可能  (例)「A1・い」と「C1・さ」が選択時はOK    「A1・い」と「B2・く」と「C1・さ」が選択時はNG <html> <head> </head><body> <form> <table border="1"> <tr> <td>A1</td> <td><input type="checkbox" name="chk1" value="1">あ</td> </tr> <tr> <td> </td> <td><input type="checkbox" name="chk1" value="1">い</td> </tr> <tr> <td> </td> <td><input type="checkbox" name="chk1" value="1">う</td> </tr> <tr> <td>A2</td> <td><input type="checkbox" name="chk1" value="1">え</td> </tr> <tr> <td> </td> <td><input type="checkbox" name="chk1" value="1">お</td> </tr> <tr> <td>B1</td> <td><input type="checkbox" name="chk1" value="1">か</td> </tr> <tr> <td>B2</td> <td><input type="checkbox" name="chk1" value="1">く</td> </tr> <tr> <td> </td> <td><input type="checkbox" name="chk1" value="1">け</td> </tr> <tr> <td>C1</td> <td><input type="checkbox" name="chk1" value="1">さ</td> </tr> <tr> <td>C2</td> <td><input type="checkbox" name="chk1" value="1">し</td> </tr> <tr> <td> </td> <td><input type="checkbox" name="chk1" value="1">す</td> </tr> </table> <input type="submit" value="チェック"> </form> </body> </html> すみませんがよろしくお願いします。

  • チェックボックスで選択したものがINSERTできません。

    <input type="checkbox" name="color[]" value="1" checked>赤 <input type="checkbox" name="color[]" value="2" >青 <input type="checkbox" name="color[]" value="3" >黄 <input type="checkbox" name="color[]" value="4" >緑 をPOSTで送ってPHPで $color_arr=Array(1=>"赤",2=>"青",3=>"黄",4=>"緑"); $color=$_POST["color"]; $str_color=""; foreach ($color as $key => $value){ if($str_color!="") $str_color.=","; $str_color.=$color_arr[$value]; } $html = str_replace('_%color%_', $str_color, $html); として追加内容確認画面で <input type="hidden" name="color" value="_%color%_"> _%color%_ として、チェックしたものを 赤,黄のように表示させて「OK」ボタンを押して PHPでINSERTするんですが、 mysql_query('insert into table1(name,color) values("'.$_POST['name'].'","'.$_POST['color'].'")'); としても空白のままです。nameはちゃんと入ってます。 テーブルは name varchar(50) color char(1) です。

    • ベストアンサー
    • PHP
  • 送信後のチェックボックスの表示

    最初の画面で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"をつけて表示させています。 もっと、効率のよい書き方はないものでしょうか?

  • 特定のチェックボックスをチェックするには

    特定のチェックボックス「白」を CHECKEDにする方法を教えて下さい。 #数と位置が変動するので配列は取得できません。 #「もしもcolorの値が白なら CHECKED」のような関数にしたい。 <INPUT TYPE="CHECKBOX" NAME="color" VALUE="おまかせ"> <INPUT TYPE="CHECKBOX" NAME="color" VALUE="白"> <INPUT TYPE="CHECKBOX" NAME="color" VALUE="ピンク"> <INPUT TYPE="CHECKBOX" NAME="color" VALUE="緑">

専門家に質問してみよう