我一直在做我自己的PHP项目。我遇到了一个障碍。我正在尝试检索数据库的结果并为每个结果集打印出一个表单。
然后,我希望与一个特定结果进行交互,要么删除它,要么将其传递给函数等。
这是我当前的代码:
<?php
while($row = mysqli_fetch_array($result)){
echo '<div id="post">'; ?>
<form action="" method="post">
<?php
echo "<font size=4>".$row['post']."<br>";
echo "posted by : ".$row['username']."<br>";
$id = $row['p_id']; ?>
<input type="submit" name="choice" value="Y">
<input type="submit" name="choice" value="N">
</form>
<br>
</div>
}
<?php
if($_POST['choice']=="Y"){
// progress
functionA();
}
else if($_POST['choice']=="N"){
// delete or remove
functionB();
}
?>
所以我在这里的目标是单击 Y 以处理该特定结果或单击 N 以删除/删除结果。但是,目前通过单击任一按钮,所有结果都将被删除或进行。我确实知道应该使用 id 来区分帖子,但我似乎无法让它工作。按下按钮后,它将所有结果传递给任一函数。
首先,我想你想知道要删除的记录。因此,向表单添加输入:
<input type="hidden" name="id" value="<?php echo $row['p_id']; ?>">
然后,在脚本中调用:
if( $_POST['choice'] == "Y" )
{
// progress
functionA( $_POST['id'] );
}
elseif( $_POST['choice']=="N" )
{
// delete or remove
functionB( $_POST['id'] );
}
其他问题:如何在函数中使用数据库连接?假设您的 mysqli 连接名为 $conn
,请按以下方式调用函数:
functionA( $_POST['id'], $conn );
旁注:首先处理$_POST
值,然后检索数据库记录并打印出来。
旁注2:看看准备好的声明。
- 阅读有关变量作用域的更多信息
- 阅读有关预准备语句的更多信息
对值中包含 id 的每个项目使用两个不同的<input type="radio">
,并让用户选择要删除和处理的项目。
因此,对于 id 1
的项目,输出的 HTML 如下所示:
<input type="radio" name="items[1]" value="delete"><input type="radio" name="items[1]" value="process">
name
强制项目以数组的形式进入_POST
,其中 id 作为键,所选操作作为其值。
示例 html:https://jsfiddle.net/gu1gkwod/