如何在PHP生成的表的单元格中创建链接?

时间:2010-06-17 05:26:02

标签: javascript php hyperlink html-table

我有一个从一些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可以从超链接中提取的全局变量。我在超链接指向的页面中使用了上面的代码,我能够得到我想要的。不太难,但如果你不知道怎么做就会感到沮丧!

1 个答案:

答案 0 :(得分: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”在网站上应该是唯一的,就像站点注释一样。