-2

MySQL クエリから動的に作成された行に対して、悪名高いチェックオール チェックボックスを作成しようとしています。行 (およびチェックボックス) は、1 行からメトリック バットロードまでの範囲である可能性があります。

フォーム (checkall なし) は次のとおりです。

<form name="form" method="post" action = "process.order.php">

<?php
while($fetch = mysql_fetch_array($order_query){

$order_id = $fetch['oid'];
$order_status = $fetch['ostat'];

?>

   <input type="checkbox" name="order_row[<?=$order_id?>]" id="1" value="1">
   <select name="status[<?=$order_id?>]" id="status[<?=$order_id?>]"
   <option value="Ordered">Ordered</option>
   <option value="Backordered">Backordered</option>
   </select>
<? } ?>


<input type="submit" name="submit" id="submit" value="submit"> </form>

process.order.php で:

<?php
if(is_array($order_row)){
foreach($order_row as $order_id=>$val){

...残りのスクリプトが続きます。私はこれを使ってみました: HTMLで「すべて選択」チェックボックスを実装する方法は? そしてこれ: すべてのチェックボックスを選択

現時点では、jQuery の使用を避けようとしています。PHPスクリプトによって生成されたチェックボックス名をjavascriptコードに呼び出す方法はありますか?

更新: 複数のページで呼び出すことができる関数を使用したいと思います。したがって、JS にフォーム名を埋め込んで呼び出すことは、私にとって実用的ではありません。また、チェックボックスにしたいと思います-ボタンはうまく機能しましたが、UIをシンプルに保とうとしていて、削除しようとしているボタンがすでにたくさんあります...

4

2 に答える 2

5

実施例

次のようにできます。

var frm = document.forms['form'];
for (var i = 0, l = frm.elements.length; i < l; i++) {
   if (frm.elements[i].type === 'checkbox') {
      frm.elements[i].checked = true;
   }
}

同様に、すべてのセットのチェックを外すには:

frm.elements[i].checked = true;

false

checkAll上記のコードを使用して、unCheckAll関数を簡単に作成することもできます。


ちなみに、id数値のみの は無効です。英字または英字と数字を組み合わせて使用​​してください。

于 2012-06-15T16:36:08.883 に答える
0

IE6 または 7 をサポートする必要がない場合は、次の方法で機能します。

ライブデモ

var checkAll = document.getElementById("checkall");

checkAll.onclick = function(){
    [].forEach.call(
        document.forms['form'].querySelectorAll("input[type='checkbox']"),
        function(el){
            el.checked=true;
    });
}

</p>

于 2012-06-15T16:39:24.610 に答える