2013-12-10 43 views
1

我遇到存储和更新复选框值的问题。 当我选择/取消选择它们全部有效时,但是当我选择最后一个时,该值被设置为第一个未选中的框等等。PHP:如何存储和复选框值并更新它们

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

哪里是$ _ POST [ 'numOfRows']? –

+0

对不起,我忘了复制它,它现在在那里。 – user3013190

+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 
     } 
    } 
} 
+1

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

+0

谢谢soooo,它工作* \ o/* – user3013190

相关问题