-2

我有在 while 循环中生成的复选框。这些复选框总是第一次被选中,并且存储在数据库中的值是“开”。但是当用户取消选中它时,我想将“关闭”存储在数据库中。但我的问题是我无法访问复选框名称来检查按钮单击时是否未选中哪些复选框。我写了这段代码

while($row = mysql_fetch_assoc($result)) {
   if($pck_id_renew == 'On')
   {
     echo '<td class=c><input type="checkbox" id="renew_chk" name="renew_chk"  
       checked="checked" style="width:50px" value="On"/></td>'; 
   }
   if($pck_id_renew == 'Off') {
     echo '<td class=c><input type="checkbox" id="renew_chk" name="renew_chk"   
       style="width:50px" value="Off"/></td>';  
   }
}
4

1 回答 1

0

您只会收到选中复选框的输入值。使用一个数组并将所有可用的复选框名称存储在其中。循环遍历此数组以检测选中/未选中的复选框。

代码可能如下所示:

// Define available checkboxes
$inputs = array('renew_chk', ...);

// Check input values
$values = array();
foreach ($inputs as $input) {
  if (isset($_POST[$input])) {
    $values[$input] = 'On';
  }
  else {
    $values[$input] = 'Off';
  }
}

// Loop through $values and store value in database
foreach ($values as $input => $value) {
  // UPDATE database SET $input = $value WHERE id = [n];
}
于 2012-06-03T12:55:42.633 回答