我在存储和更新复选框值方面遇到问题。 当我选择/取消选择它们时,它都有效,但是当我选择最后一个时,该值被设置为第一个未选中的框,依此类推。
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;
}
希望你能提供帮助,谢谢。
答案 0 :(得分:2)
试试吧
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
}
}
}