这个问题我之前已经提交过,但是没有解决。我已经致力于我正在尝试构建的网站的其他部分,并且我再次回到了这个问题。下面是OP; here是上一个问题。
我已阅读this和 this帖子,看起来最相似,但它没有解决我的问题。
我有下面的 while 循环来显示数据库中的结果。 while循环中的具体问题行是这样的(注意:它在一个表单内):
while($row = mysqli_fetch_array($result)){
<input type='checkbox' name='check_box_delete[]' value='".$row['BookingNo']."'>
}
除了复选框之外,表单数据的其余部分都可以正常通过。在下面的 php 页面中,我有这个:
if(isset($_POST['check_box_delete'])){
foreach($_POST['check_box_delete'] as $id){
$sql="DELETE FROM bookings WHERE BookingNo='".$id."'";
if (!mysqli_query($con,$sql)){
die('Error: ' . mysqli_error($con));
}
echo $id." deleted.";
}
页面回显已删除
,但没有关联的$id。我怀疑我的processor.php根本没有获取预订号码。
干杯
最佳答案
您的表单发送到的页面看起来没问题,除了 $id 位于循环之外这一事实。以下内容对我有用。
<form action = "process.php" method = "POST">
<?php
$mysqli = new mysqli("localhost", "root", "", "dbname");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT * FROM tablename";
$result = $mysqli->query($query);
while($row = mysqli_fetch_array($result)){
echo "<input type='checkbox' name='check_box_delete[]' value='".$row['BookingNo']."'>";
}
?>
<input type = "submit">
</form>
然后是process.php
<?php
if(isset($_POST['check_box_delete'])){
foreach($_POST['check_box_delete'] as $id){
$sql="DELETE FROM bookings WHERE BookingNo='".$id."'";
if (!mysqli_query($con,$sql)){
die('Error: ' . mysqli_error($con));
}
echo $id." deleted.<br>";
}
}
?>
关于php - 从另一个页面上的 while 循环外部的 mysql 数据库获取表单后复选框变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19555997/