【问题标题】:PHP HTML table - href links for database element that fills up table on following pagePHP HTML 表格 - 用于填充下一页上表格的数据库元素的 href 链接
【发布时间】:2017-09-08 13:00:18
【问题描述】:

我有一个网站目前在过滤选项方面工作,所以当有人从下拉列表中选择一个序列号并点击提交时,我的 display.php 页面会出现并使用与该序列对应的数据库元素填充多个 html 表号码。

我的新任务是以相同的方式填充显示页面,但到达那里的方式不同。目前,如果您从下拉列表中选择并点击提交,我将提交按钮发布到 display.php 页面,显示页面拉取请求,如下所示:

if(isset($_POST['submit']))
{

$query1 = "SELECT * 
           FROM staging 
           WHERE stageID = ".$_REQUEST['serialNumber'].";";

这会根据数据库检查选择的序列号并提取附加到它的整个记录​​。

现在我在主页上有一个 html 表,它填充了数据库表中的所有记录。我想用href制作每个'行'html链接以及选择该链接时,它会提取display.php页面并使用该值填充表。 display.php 上的表已经用数据库表中的正确值回显了行,所以我只需要一种从链接填充的新方法。

我知道有一种方法可以在元素上使用 href,但是表格是从 SQL 语句结果中填充的,如下所示:

<div class="dashboardTable">
<table style="border: 1px solid black;">
<tr>
    <th>Work Order Packet</th>
    <th>Work Order Number</th>
    <th>Date</th>
    <th>Utility</th>
    <th>Service Name</th>
    <th>Address</th>
    <th>Serial No.</th>
</tr>

<?php
    while($row = mysqli_fetch_array($result1)){
?>
    <tr>
    <td><? echo $row['workOrderPacket'];?>&nbsp;</td>
    <td><? echo $row['workOrderNum'];?>&nbsp;</td>
    <td><? echo $row['date'];?>&nbsp;</td>
    <td><? echo $row['utility'];?>&nbsp;</td>
    <td><? echo $row['serviceName'];?>&nbsp;</td>
    <td><? echo $row['address'];?>&nbsp;</td>
    <td><? echo $row['serialNumber'];?>&nbsp;</td>
</tr>
<?}?>
</table>
</div>

那么,当有人点击一个链接时,有没有办法调出我的 display.php 页面并检查数据库中是否有满足这 7 个元素的记录?或者即使我需要将 display.php 表复制到一个新文件中,这样它就不会与下拉菜单 $_REQUEST 混淆。

【问题讨论】:

    标签: php html mysql sql href


    【解决方案1】:

    您可以添加一个常规链接到表格,并更改您的显示页面以允许发布或获取:

    <tr>
        <th>Work Order Packet</th>
        <th>Work Order Number</th>
        <th>Date</th>
        <th>Utility</th>
        <th>Service Name</th>
        <th>Address</th>
        <th>Serial No.</th>
        <th>View details</th>
    </tr>
    
    <?php
        while($row = mysqli_fetch_array($result1)){
    ?>
        <tr>
        <td><? echo $row['workOrderPacket'];?>&nbsp;</td>
        <td><? echo $row['workOrderNum'];?>&nbsp;</td>
        <td><? echo $row['date'];?>&nbsp;</td>
        <td><? echo $row['utility'];?>&nbsp;</td>
        <td><? echo $row['serviceName'];?>&nbsp;</td>
        <td><? echo $row['address'];?>&nbsp;</td>
        <td><? echo $row['serialNumber'];?>&nbsp;</td>
        <td><a href="/display.php?serialNumber=<? echo $row['serialNumber'];?>">view</a></td>
    </tr>
    <?}?>
    

    显示.php

    //if(isset($_POST['submit']))
    if(isset($_REQUEST['serialNumber']))
    {
    
    $query1 = "SELECT * 
               FROM staging 
               WHERE stageID = ".$_REQUEST['serialNumber'].";";
    

    另外值得注意的是,您对 SQL 注入持开放态度,您应该考虑使用准备好的语句

    【讨论】:

    • 哦,我没有这样想,让我试一试。谢谢!另外,是的,我以前曾与某人一起检查过准备好的陈述,并且将来会这样做。这是一个项目,所以我在一些安全和程序问题上有些松散,但我一定会考虑到这一点,谢谢!
    • 我尝试了查看链接行(显示并完美提交),我不得不更改路径,因为我在本地服务器上。我终于把它拉出来了,但它只显示我的连接成功消息和所选序列号的打印。我注释掉了我的帖子/提交行并放入了您的 $_REQUEST 行。
    • 如果你改变的只是 if 子句,那么我不知道为什么它不会工作,如果以前的版本这样做了
    • 我可能不清楚,我很抱歉。以前的(提交)版本从不同的页面(userSelection.php)工作,其中有一个下拉和提交按钮。上面显示所有记录的 html 表位于名为 dashboard.php 的页面上,没有提交按钮。让我将代码添加到 userSelection.php 页面,看看是否有效
    • 好的,我将您给我的 IF 语句保留在 display.php 中,并将所有表格代码移至 userSelect.php。下拉列表和表格正确显示,但如果我点击视图链接,它仍然会转到 display.php 并显示连接消息并回显序列号,但没有表格
    猜你喜欢
    • 2014-05-08
    • 2016-03-03
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 2014-01-25
    • 2011-03-15
    相关资源
    最近更新 更多