PHP / HTML:如何访问在循环中动态生成的复选框

时间:2012-06-03 12:28:59

标签: php html

我有在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>';  
   }
}

1 个答案:

答案 0 :(得分: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];
}