PHP:如何存储和复选框值并更新它们

Posted

技术标签:

【中文标题】PHP:如何存储和复选框值并更新它们【英文标题】:PHP: How to store and checkboxes values and update them 【发布时间】:2013-12-27 20:39:50 【问题描述】:

我在存储和更新复选框值时遇到问题。 当我选择/取消选择它们时,它都可以工作,但是当我选择最后一个时,值设置为第一个未选中的框,依此类推。

html 表单:

echo'<input type="hidden" name="numOfRows" value="'.mysql_num_rows($query).'">';

if ($row[10]==1)
 
  echo'<input type="checkbox" id="activateExam" name="activateExam[]" value="1" checked="checked">';
 
else if ($row[10]==0)
 
  echo'<input type="checkbox"  id="activateExam"  name="activateExam[]" value="0" >';
 
echo'<input type="hidden" name="id[]" value="'.$row[0].'">';

php 代码:

for ($i = 0; $i < $_POST['numOfRows']; $i++)

if (isset($_POST['activateExam'][$i]))

    $activateExam = '1';

else
if (!isset($_POST['activateExam'][$i]))

    $activateExam = '0';


$id = $_POST['id'][$i];
echo "exam" . $activateExam . " id: " . $id;
$sql = "UPDATE `student` SET `activateExam`='" . $activateExam . "' WHERE `ID`='" . $id . "'";
$query = mysql_query($sql);
if (!$query) echo "Database Error : " . $sql;

希望你能帮忙,谢谢。

【问题讨论】:

$_POST['numOfRows'] 在哪里? 对不起,我忘了复制它,它现在在那里。 尝试给出的答案。我想你想激活他们被选中和不活跃的其他人。 【参考方案1】:

试试看

HTML

if ($row[10]==1)
 
  echo'<input type="checkbox" id="activateExam" name="activateExam[]" value="'.$row[0].'" checked="checked">';
 
else if ($row[10]==0)
 
  echo'<input type="checkbox"  id="activateExam"  name="activateExam[]" value="'.$row[0].'" >';
 

和php

mysql_query("UPDATE `student` SET `activateExam`=0 ") or die(mysql_error()); // update all to 0

if(isset($_POST['activateExam']))

   $arr_active_exam = $_POST['activateExam'];
   if(sizeof($arr_active_exam)>0)
   
      foreach($arr_active_exam as $id)
      
          mysql_query("UPDATE `student` SET `activateExam`=1  WHERE id='$id' ") or die(mysql_error()); // update all to 1 which is checked 
      
   

【讨论】:

如果您的 id 列是主键,您可以使用限制 1。作为 WHERE id='$id' LIMIT 1

以上是关于PHP:如何存储和复选框值并更新它们的主要内容,如果未能解决你的问题,请参考以下文章

php从数据库中删除值并使其他不变

自动添加复选框值并保留其名称以存储在数据库中

如何从 <td> 获取值并保存到 php 中的数据库

在 PHP 中显示数据库中的复选框值

如何从复选框中获取值并使用 javascript 计算单击的项目

复选框状态更改时如何更新mysql字段?使用 jquery (ajax)、php 和 mysql