【问题标题】:PHP - building html buttons with a loop [closed]PHP - 使用循环构建 html 按钮 [关闭]
【发布时间】:2014-08-07 16:35:24
【问题描述】:

我是一名初级开发人员,对 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>";

}

我不知道如何将循环构建的每个按钮与其所在的行关联起来。任何人都可以阐明这个问题吗?我可能是在接近这个错误吗?

感谢您的任何意见!

【问题讨论】:

  • 我会推荐使用 jQuery 和 Ajax 来做到这一点。

标签: php html loops button


【解决方案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 页面都会验证该值,确保允许用户对该记录执行该操作、获取该记录并相应地呈现页面。

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

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

【讨论】:

  • 感谢您的回答!我使用了 href/GET 方法,效果很好!感谢您帮助我进一步了解 php
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多