【问题标题】:How do I create links in the cells of a PHP generated table?如何在 PHP 生成的表格的单元格中创建链接?
【发布时间】:2017-06-04 05:59:56
【问题描述】:

我有一个由一些 PHP 代码生成的表格,其中列出了少量的员工重要信息。我想这样做,以便可以单击每一行或每行中的至少一个元素,以便用户将被重定向到与被单击的员工相关的所有信息(从 MySQL 数据库中提取)。我不确定如何解决这个问题的最佳方法,但我愿意接受建议。我想坚持使用 PHP 和/或 JavaScript。下面是我的表的代码:

        <table>

            <tr>

                <td id="content_heading" width="25px">ID</td>
                <td id="content_heading" width="150px">Last Name</td>
                <td id="content_heading" width="150px">First Name</td>
                <td id="content_heading" width="75px">SSN</td>

            </tr>

            <?php

                $user = 'user';
                $pass = 'pass';
                $server = 'localhost';

                $link = mysql_connect($server, $user, $pass);

                if (!$link){
                    die('Could not connect to database!' . mysql_error());
                }

                mysql_select_db('mydb', $link);
                $query = "SELECT * FROM employees";
                $result = mysql_query($query);
                mysql_close($link);

                $num = mysql_num_rows($result);                         

                for ($i = 0; $i < $num; $i++){

                    $row = mysql_fetch_array($result);

                    $class = (($i % 2) == 0) ? "table_odd_row" : "table_even_row";

                    echo "<tr class=".$class.">";

                        echo "<td>".$row[id]."</td>";
                        echo "<td>".$row[l_name]."</td>";
                        echo "<td>".$row[f_name]."</td>";
                        echo "<td>".$row[ssn]."</td>";

                    echo "</tr>";

                }

            ?>      

        </table>

编辑

好的,在修改@DrColossos 发布的内容后,我已经能够让我的链接正常工作,但现在我在唯一性部分遇到了问题。下面是我现在用来创建表的代码:

                        echo "<td><a href=Edit_Employee.php?".$row[id].">".$row[id]."</a></td>";
                        echo "<td><a href=Edit_Employee.php?".$row[id].">".$row[l_name]."</a></td>";
                        echo "<td><a href=Edit_Employee.php?".$row[id].">".$row[f_name]."</a></td>";
                        echo "<td><a href=Edit_Employee.php?".$row[id].">".$row[ssn]."</a></td>";

这会使行的所有元素超链接到Edit_Employee.php?**id**。例如,如果id 是其中之一,则超链接将为Edit_Employees.php?1现在我需要在我的Edit_Employee.php 页面中做什么来获取或识别链接中的id,因为它是唯一的id,这就是我需要基于我的 MySQL 搜索.

编辑

想通了。这成功了:

$id = $_GET['id'];

我发现像我一样创建链接会使id 成为 PHP 可以从超链接中提取的全局变量。我在超链接指向的页面中使用了上面的代码,我能够得到我想要的。不是太难,但如果你不知道它是如何完成的,那就太令人沮丧了!

【问题讨论】:

    标签: javascript php hyperlink html-table


    【解决方案1】:

    您已经可以使用每个员工的“ID”创建一个唯一链接。

    您可以执行以下操作:

     echo "<td><a href="employee.php?id=\"" . $row['id'] . "\">" . $row['id'] . "</td>";
    

    或更具可读性

     echo "<td><a href="employee.php?id=\"{$row['id']}\">{$row['id']}</td>";
    

    然后您可以使用employee.php 来显示它的详细信息(id 将在$_GET['id'] 中,参见here)。在处理它之前不要忘记检查 $_GET['id'] 的值,因为它可能包含有害数据(例如 SQL 注入)。

    顺便说一句,您在表id="content_heading" 中使用的HTML 属性“id”在站点上应该是唯一的,就像站点注释一样。

    【讨论】:

    • 感谢您的回复,我累了,所以我明天再试一试。也感谢您对 id 的提醒,但我对您在说什么感到有些困惑。我知道它现在的方式不正确(实际上我也不应该在我的&lt;td&gt; 标签中使用width),我计划稍后有机会时将其放入样式表中,但我认为id 只需要每个页面都是唯一的,而不是整个站点。你是说一旦我在我网站的任何页面上使用id,我就不能在同一网站的另一个页面上再次使用它?我应该怎么做才能正确格式化我的&lt;td&gt; 标签?
    • w3schools.com/tags/att_standard_id.asp,不,每个 id 属性都应该在每个页面的基础上使用。您当然可以以独特的方式在每个页面上使用它。
    猜你喜欢
    • 2011-03-21
    • 2023-04-04
    • 2012-05-11
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 2018-01-27
    相关资源
    最近更新 更多