PHP-使用循环构建html按钮

PHP-使用循环构建html按钮,php,html,loops,button,Php,Html,Loops,Button,我是一名初学者,对php非常陌生 我正在为一个网页编写一个php脚本,该网页使用循环构建表,在表中显示数据库的内容。显示内容不是问题,我需要能够做的是在显示表的每一行上都有编辑和删除数据库对应行的按钮。到目前为止,我的代码可以很好地构建表和按钮,但我知道如何将功能添加到按钮中!对于编辑按钮,我需要它将用户和该行的内容带到另一个页面(已创建)进行编辑,而删除按钮只需从数据库中删除该行。代码如下: while ($row = mysqli_fetch_array($result)) { e

我是一名初学者,对php非常陌生

我正在为一个网页编写一个php脚本,该网页使用循环构建表,在表中显示数据库的内容。显示内容不是问题,我需要能够做的是在显示表的每一行上都有编辑和删除数据库对应行的按钮。到目前为止,我的代码可以很好地构建表和按钮,但我知道如何将功能添加到按钮中!对于编辑按钮,我需要它将用户和该行的内容带到另一个页面(已创建)进行编辑,而删除按钮只需从数据库中删除该行。代码如下:

while ($row = mysqli_fetch_array($result))
{

    echo "<tr>
          <td><select multiple class='form-control'><option>" . $row[3] . "</option></select></td>
          <td><center>" . $row[1] . "</center></td>
          <td><center>" . $row[7] . "</center></td>
          <td><center><img style='display:block; width:100px;height:100px;' alt='' src='data:image/jpeg;base64," . $row[8] . "'/></center></td>
          <td><center><button type='button' class='btn btn-success'>Edit</button></center></center>&nbsp;</td>
          <td><center><button type='button' class='btn btn-danger'>Delete</button></center></td>
          </tr>";

}
while($row=mysqli\u fetch\u数组($result))
{
回声“
“$row[3]”
“$row[1]”
“$row[7]”
编辑
删除
";
}
我不知道如何将循环生成的每个按钮与其所在行相关联。有人能解释一下这个问题吗?我是不是走错路了


谢谢你的任何意见

如果使用链接而不是按钮,这将容易得多,因为您可以向查询字符串添加值。大概是这样的:

<td><a href=\"edit.php?id=" . $row[0] . "\">Edit</a></td>
<td><a href=\"delete.php?id=" . $row[0] . "\">Delete</a></td>
这允许
edit.php
delete.php
页面知道正在编辑或删除哪个记录。考虑你的陈述:

我需要它将用户和该行的内容带到另一个页面

链接将用户带到另一个页面。您可以将链接的样式设置为按钮,但如果要“将用户带到另一个页面”,则所需的标记就是链接。您不需要“将该行的内容”带到另一个页面,只需为另一个页面提供一个标识符,这样它就可以从数据库中获取数据。另一个页面将从以下位置获取标识符:

$_GET['id']
该标识符确定正在编辑或删除的记录。因此,
edit.php
delete.php
页面都将验证该值,确保允许用户对该记录执行该操作,获取该记录,并相应地呈现页面

注意:请记住,出于用户体验的目的,您还可以将“其他页面”视为AJAX资源。例如,删除功能可以是带有客户端JavaScript处理程序的普通“按钮”。该处理程序可以向
delete.php
发出AJAX请求,该请求执行上述所有相同的功能,但只返回JSON数据,而不是整个页面。这些数据可以简单到成功或失败的布尔指标


JavaScript处理程序将发出AJAX请求并接收响应,如果响应指示成功,它将从UI中的表中删除该行。相同的结构,相同的功能,只是使用AJAX而不是页面请求。

如果您愿意,可以使用jQuery/AJAX,但我不推荐,因为只有使用HTML才能做到这一点:

一种是使用链接而不是按钮,正如你已经被告知的那样:对我来说,这是最好的解决方案,因为它易于实现,而且看起来也更好(但是使用一些CSS可以获得相同的外观,所以这不是一个好主意)

但是,如果您确实需要使用按钮,也有一些方法可以做到这一点:首先想到的是对每一行使用不同的表单,然后在每一行中添加一个隐藏的输入,指定要在PHP脚本中使用的ID:

<?php
  print_r($_POST);
?>
<form method='POST'>
  AAA <input type='submit' value='Edit'><input type='hidden' name='edit' value='AAA'><br>
</form>
<form method='POST'>
  BBB <input type='submit' value='Edit'><input type='hidden' name='edit' value='BBB'><br>
</form>
<form method='POST'>
  CCC <input type='submit' value='Edit'><input type='hidden' name='edit' value='CCC'><br>
</form>

AAA
BBB
CCC

不优雅,我知道,但这是我想到的第一件事。无论如何,除非你真的想要按钮,否则如果你决定使用link,你的代码可能会看起来更好

我建议使用jQuery和Ajax来实现这一点。谢谢你的回答!我使用了href/GET方法,效果非常好!感谢您帮助我进一步了解php
<?php
  print_r($_POST);
?>
<form method='POST'>
  AAA <input type='submit' value='Edit'><input type='hidden' name='edit' value='AAA'><br>
</form>
<form method='POST'>
  BBB <input type='submit' value='Edit'><input type='hidden' name='edit' value='BBB'><br>
</form>
<form method='POST'>
  CCC <input type='submit' value='Edit'><input type='hidden' name='edit' value='CCC'><br>
</form>