我有一个使用PHP从mySQL数据库中提取的项目列表。 每个项目都打印到一个列表中。每个项目都有“待定”或“已完成”状态。状态以字符串形式保存到数据库中。
默认情况下,所有项目都处于“待处理”状态,我想选择某些项目并将其状态从该表格更改为“已完成”。所以我将结果表(使用while循环创建)插入到表单中,并在每个项目之外添加了一个复选框。
我想做的事情是:“当您提交此表单时,对于已选中此复选框的每个项目,请将其状态更改为已完成”。
这就是我所做的:
echo '<form action="" method="POST">';
while($x=mysqli_fetch_array($consulta)){
echo '<tr><td>'.$x['id'].'</td> <td>'.$x['email'].'</td> <td>'.$x['fecha'].'</td> <td>'.$x['monto'].'</td> <td>'.$x['sucursal'].'</td> <td>'.$x['ticket'].'</td> <td>'.$x['cuentaOrigen'].'</td> <td>'.$x['estado'].' <input name="cambiar[]" type="checkbox" value="'.$x['id'].'"></td>
</tr>';
};
echo '
</tbody>
</table>
<p class="text-right"><input type="submit" class="btn btn-danger" value="Finiquitar los tildados"></input></p>
';
现在,这是应该抓住每个复选框并更改其状态的部分。我已尝试调整this example,但无法使其正常工作。
if(isset($_POST['submit'])) {
$total=array();
$total=count($_POST['cambiar']);
for($i=0;$i<$total;$i++){
$id=$_POST['cambiar'];
$cambiar = "UPDATE datos
SET estado = 'pasado'
WHERE id='$id'";
$resultado = mysqli_query($conexion, $cambiar);
}
}
顺便说一句,首先显示列表的选择查询是:
$query="SELECT id,
email,
fecha,
monto,
cuentaOrigen,
sucursal,
ticket,
estado
FROM datos
WHERE estado = 'pendiente'
ORDER BY id DESC
";