如果可以使用复选框更改多行值?

时间:2013-11-13 02:54:08

标签: javascript php mysql mysqli

当我选中复选框时,是否可以在我的数据库中编辑我的状态字段?

我想要的是,当我在表格中检查多行时,它会在我提交后自动将数据库中row ['status']的值更新为是。

就像这样,

表APP

counter | status

100001  | 
100002  | 
100003  |   
100004  | 

当我检查100001和100002时,状态值变为是。

counter | status

100001  | yes
100002  | yes
100003  |   
100004  | 

以下是我的简短代码。

<form name="form1" method="post" action="">
<?php
$mysqli = new mysqli("localhost", "root", "", "app");
$result1 = $mysqli->query("SELECT * FROM APP");
echo'<table id="tfhover">
<tr>
<th>status</th>
<th></th>
</tr>';
while($row = $result1->fetch_assoc()){
echo
'<tr>
<td>'.$row['status'].'</td>
<td><input name="checkbox[]" type="checkbox" id="checkbox[]" value="'.$row['counter'].'"></td>
</tr></table>';
?>
<input id='edit' type='submit' class='button' name='edit' value='Edit'/> 
</form>

<?
if(isset($_POST['edit'])) 
{

}
?>

如果可以这样做?帮忙?

2 个答案:

答案 0 :(得分:0)

name="checkbox[]"将在$ _POST [“复选框”]中创建一个数组供您使用。该数组将包含您选择的所有复选框的值。

答案 1 :(得分:0)

可能是您可以尝试此代码 在PHP

<?
if(isset($_POST['edit'])) 
{
     if(is_array($_POST['checkbox'])){
         $status = "yes";
         foreach($_POST['checkbox'] as $key=>$value){
             $stmt = $mysqli->prepare("UPDATE APP SET status=? WHERE counter= ?");
             $stmt->bind_param('ss', $status, $value);
             $stmt->execute();             
         }
     }else{
         echo "No changes";
     }
}
?>