对于我糟糕的英语和基本问题,我很抱歉。 我想问一下:
假设我已经显示了包含6列和值行的表。 在列的末尾,我有“选项标题”,行的选项为“删除按钮”。
像这样: 完整表
我想要的是当我单击“删除”按钮时,所选行上的所有值都将被完全删除。
像这样: 删除后
这是我的PHP和HTML代码:
<tbody>
<tr>
<?php
while($getdata = mysqli_fetch_array($result))
{
echo"<td>".$getdata['x_id']."</td>";
echo"<td>".$getdata['x_title']."</td>";
echo"<td>".$getdata['x_track']."</td>";
echo"<td>".$getdata['x_tag']."</td>";
echo"<td>".$getdata['x_model']."</td>";
echo'<td><img class="img-table-thumbnail" src="'.$getdata['x_thumb'].'"></td>';
echo'<td><a type="button" class="btn btn-sm btn-default" href="'.$getdata['x_link'].' " target="_BLANK">VISIT</a></td>';
echo'<td><form action="delete.php" method="post" enctype="multipart/form-data">
<button type="submit" name="deleteData" class="btn-sm btn-primary"><i class="fa fa-times-circle" aria-hidden="true"></i></button>
</form></td>';
echo "</tr>";
}
//$result = mysqli_query($db_connect,$sql);
$db_connect->Close();
?>
</tbody>
和delete.php:
$id = (int)$_GET['id'];
$update = $db_connect->prepare("DELETE FROM $db_table WHERE id = ?");
$update->bind_param('i', $id);
$update->execute();
$update->close();
header("location:index.php");
?>
寻求帮助并提前感谢任何答案。
答案 0 :(得分:0)
请尝试使用以下代码:
注意:我没有看到完整的代码,但我更改了错误的赋值/声明的代码。您可以随意调整代码
$id = (int)$_POST['deleteData'];
$update = $db_connect->prepare("DELETE FROM $db_table WHERE id = ?");
$update->bind_param('i', $id);
$update->execute();
$update->close();
header("location:index.php");
?>
Delete.php
public interface TuitionFeeCalculator {
double calculateFee(double fee);
}
public class Fee70 implements TuitionFeeCalculator {
@Override
public double calculateFee(double fee) {
return fee * (1-0.7);
}
}
public class Fee50 implements TuitionFeeCalculator {
@Override
public double calculateFee(double fee) {
return fee * (1-0.5);
}
}
public class FeeNoDiscount implements TuitionFeeCalculator {
@Override
public double calculateFee(double fee) {
return fee;
}
}
public class Student {
double tf;
public Student(double tuitionFee) {
this.tf = tuitionFee;
}
}
public static void main(String[] args) {
double averageMark = 90;
double fee = 10000;
TuitionFeeCalculator feeCalculator;
if(averageMark >70) {
feeCalculator = new Fee70();
} else if (averageMark > 50) {
feeCalculator = new Fee50();
} else {
feeCalculator = new FeeNoDiscount();
}
Student s = new Student(feeCalculator.calculateFee(fee));
}
答案 1 :(得分:0)
您在delete.php上使用POST作为requestmethod。这样做,你通过$ _POST ['id']得到你的id而不是$ _GET ['id']。但在您的情况下,您没有任何具有该值的表单控件。
现在你有两个选择。
1。)通过将按钮重命名为“id”来更改表单,并将其value属性设置为$ getdata ['your_field_with_id']。在delete.php里面你不得不将$ _GET ['id']更改为$ _POST ['id'],因为你是通过POST发送formdata而不是GET。
echo '
<td>
<form action="delete.php" method="post" enctype="multipart/form-data">
<button type="submit" name="id" value="', $getdata['your_field_with_id'], '" class="btn-sm btn-primary">
<i class="fa fa-times-circle" aria-hidden="true"></i> DELETE
</button>
</form>
</td>';
2。)使用以下代码
替换您的表单echo '
<td>
<a href="delete.php?id=', $getdata['your_field_with_id'], '" class="btn btn-sm btn-primary">
<i class="fa fa-times-circle" aria-hidden="true"></i> DELETE
</a>
</td>';
正如您所看到的,我删除了表单,并通过一个包含记录ID的简单链接替换它。
就个人而言,我更倾向于第一种解决方案。