通过链接发送当前变量值

时间:2019-07-17 21:12:27

标签: php

我有一个根据数据库内部数据生成的表。 该表的每一行都是我数据库的一行。在每一行的末尾,我创建一个链接以启动从表和数据库中删除数据的过程。这是我的代码片段:

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        echo "<tr>";
        echo "<th>".$row["username"]."</th>";
        $user = $row["username"];
        echo "<th>".$row["name"]."</th>";
        $name = $row["name"];
        echo "<th><a href='./test.php'.urlencode($user)>Remove</a></th>";
        echo "</tr>";
    }
}

如您所见,单击链接后,我要运行test.php并设置变量(及其在该行的值)。香港专业教育学院试图用urlencode来做到这一点,但当做echo $user时,它作为未定义的变量返回。我也尝试过echo "<th><a href='./test.php?link='$user>Remove</a></th>";。 我希望能够发送最多6个带值的变量。

编辑1: 这是我桌子上一行的照片: enter image description here

前两列是用户名和名称。您可以看到在while循环中设置并显示了这些值。我希望循环的每次迭代都创建一个唯一的链接,以从数据库中删除该行。或者仅在这种情况下,单击链接后发送该行的数据值。

2 个答案:

答案 0 :(得分:2)

您可以使用http_build_query功能:

$qs = [
    'user' => $row["username"],
    'name' => $row["name"],
    // ... 4 more values
];
echo '<th><a href="test.php?' . http_build_query($qs, null, '&amp;', PHP_QUERY_RFC3986) . '">Remove</a></th>';

答案 1 :(得分:0)

您没有在链接中定义变量名称。线

echo "<th><a href='./test.php'.urldecode($user)>Remove</a></th>";

应该像

echo "<th><a href='./test.php?user=".urlencode($user)."&name=".urlencode($name)."'>Remove</a></th>";

然后,在您的test.php文件中,您将使用$_GET['user']$_GET['name']读取这些变量。

另外,请注意,在原始代码中,您使用的是urldecode而不是urlencode