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