PHP - 用循环构建html按钮

时间:2014-08-07 16:35:24

标签: php html loops button

我是初学者,对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>";

}

我不知道如何将循环构建的每个按钮与它所在的行相关联。任何人都能发现这个问题吗?我可能会接近这个错误吗?

感谢您的任何输入!

2 个答案:

答案 0 :(得分:1)

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

<td><a href=\"edit.php?id=" . $row[0] . "\">Edit</a></td>
<td><a href=\"delete.php?id=" . $row[0] . "\">Delete</a></td>

这假设$row[0]包含记录的标识符,当然。使用您需要使用的任何标识符。这将创建链接,例如:

<td><a href="edit.php?id=1">Edit</a></td>
<td><a href="delete.php?id=1">Delete</a></td>

这允许edit.phpdelete.php页面知道正在编辑或删除哪条记录。考虑一下你的陈述:

  

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

链接将用户带到另一个页面。您可以样式指向的链接一个按钮,但如果您“将用户带到另一个页面”,那么您想要的标记就是一个链接。并且您没有“将该行的内容”带到另一页,您只需提供带有标识符的其他页面,以便它可以从数据库中获取该数据。其他页面将从以下位置获取标识符:

$_GET['id']

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

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

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

答案 1 :(得分:0)

如果您愿意,可以使用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>

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