我一直致力于自己的PHP项目。我遇到了障碍。我正在尝试检索数据库的结果并打印出每个结果集的表单。
然后我希望与一个特定的结果进行交互,或者将其删除或者将其传递给函数等。
Heres是我目前的代码:
<?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来区分帖子,但我似乎无法让它发挥作用。按下按钮后,它会将所有结果传递给任一功能。
答案 0 :(得分:1)
首先,我想你想知道要删除的记录。因此,在表单中添加一个输入:
<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'] );
}
其他问题:如何使用数据库连接inside the functions?假设您的mysqli连接名为$conn
,请以这种方式调用函数:
functionA( $_POST['id'], $conn );
附注:第一个进程$_POST
值,然后检索数据库记录并打印出来。
附注2:看看prepared statement。
答案 1 :(得分:0)
为值中包含id的每个项目使用两个不同的<input type="radio">
,让用户选择要删除的内容和要处理的内容。
因此对于标识为1
的项目,输出的HTML将如下所示:
<input type="radio" name="items[1]" value="delete"><input type="radio" name="items[1]" value="process">
name
强制项目转到_POST
作为数组,其中ids为键,所选操作为其值。