使用数组选中所有复选框

the*_*ess -2 javascript php checkbox

尝试从MySQL查询中为动态创建的行创建臭名昭着的checkall复选框.行(以及复选框)的范围可以从1行到公制buttload.

表格(没有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>
Run Code Online (Sandbox Code Playgroud)

在process.order.php中:

<?php
if(is_array($order_row)){
foreach($order_row as $order_id=>$val){
Run Code Online (Sandbox Code Playgroud)

...然后是脚本的其余部分.我尝试使用这个:如何在HTML中实现"全选"复选框? 并且: 选择所有复选框

我正试图在此刻避免使用jQuery.有没有办法可以将PHP脚本生成的复选框名称调用到javascript代码中?

更新: 我想使用一个可以跨多个页面调用的函数.因此,调用在JS中嵌入表单名称对我来说是不实际的.此外,我希望它是一个复选框 - 按钮工作得很好,但我试图保持UI简单,我已经有很多按钮,我试图摆脱...

Sar*_*raz 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;
   }
}
Run Code Online (Sandbox Code Playgroud)

同样,要取消选中所有设置:

frm.elements[i].checked = true;
Run Code Online (Sandbox Code Playgroud)

false.

您还可以使用上面的代码轻松创建checkAllunCheckAll运行.


顺便说一下,id只有数字值无效,你应该使用alpha或混合使用alpha和numeric字符.

  • 在HTML5中,ID可以是数字._现在允许id全局属性具有任何值,只要它是唯一的,不是空字符串,并且不包含空格字符._ (2认同)