单击时如何将与 <a> 链接关联的值设置为会话变量
Posted
技术标签:
【中文标题】单击时如何将与 <a> 链接关联的值设置为会话变量【英文标题】:How to set the value associated with an <a> link as a session variable, when clicked 【发布时间】:2016-03-22 20:18:05 【问题描述】:我在网上看到过这方面的例子,但它似乎只是破坏了我的代码。我希望能够使用下面的代码在会话变量中存储查询的字段。
PHP:
<?php
// Collect input
// If an input has been given
if(isset($_POST["aSearch"]))
$searchq = $_POST["aSearch"];
$searchq = preg_replace("#[^0-9a-z]#i","",$searchq); //Can only search words
// Select records if name's match
$sql = "SELECT * FROM birdt WHERE birdName LIKE '%$searchq%'";
// Tests if connection is made to the db to query it
if ($conn->query($sql)=== TRUE)
echo "The rows you have searched for are:";
else
echo "Connection failed: ";
echo $conn->error;
// Show fields
$result = $conn->query($sql);
// Output data of each row
if ($result-> num_rows> 0)
readfile("ViewReturn.html");
while($row = $result-> fetch_assoc())
// redirect the user to a new page
echo "<a href='sort.php'> Bird Name: ".$row["birdName"]. "</a><br><br>"; // Important row
else
echo "0 results";
?>
此代码可用于根据用户输入从数据库返回值。它将返回“birdName”并允许用户单击查询结果进入“sort.php”页面。
您将如何在会话变量中单击/之前存储返回的字段“birdName”一次,以便可以在以下页面中访问它?
附:我知道我的问题非常具体且不理想,但我很难让它发挥作用,我非常绝望,谢谢。
【问题讨论】:
session_start(); $_SESSION['var'] = $x;
@Fred-ii- 感谢您的帮助,但仍然没有运气,它会改变我的代码吗? session_start(); $_SESSION['var'] = $birdName;如果分配的值是数据库中的字段,这仍然有效吗?
在您的while
循环中,将一行分配给会话数组。所以你可以做$_SESSION['var'] = $row["birdName"];
类型的事情,然后echo $var = $_SESSION['var'];
应该可以工作。
【参考方案1】:
在脚本的开头你需要放
session_start();
然后,您可以将数据库中的每个鸟名推送到该数组中,从而将所有鸟名保存在会话变量中的数组中。
$_SESSION['birdNames'] = array();
if ($result-> num_rows> 0)
readfile("ViewReturn.html");
while($row = $result-> fetch_assoc())
// redirect the user to a new page
$_SESSION['birdNames'][] = $row['birdName'];
echo "<a href='sort.php'> Bird Name: ".$row["birdName"]. "</a><br><br>"; // Important row
else
echo "0 results";
sort.php
然后可以使用session_start();
继续会话,并访问$_SESSION['birdNames']
以获取所有鸟名。
但是,我怀疑这并不是您真正想要的。如果你想让sort.php
只处理用户点击的特定鸟名,你不应该使用会话变量,它应该是一个 URL 参数。
echo "<a href='sort.php?id=" . $row["id"] . "'> Bird Name: ".$row["birdName"]. "</a><br><br>";
那么sort.php
可以使用$_GET['id']
获取用户点击的鸟的ID。
【讨论】:
感谢您的帮助。关于URL参数,我是否可以在下面的“sort.php”页面中使用“$_GET['id]”中的值来查询用户点击的特定记录? 是的,这正是我在回答的最后一行所说的。以上是关于单击时如何将与 <a> 链接关联的值设置为会话变量的主要内容,如果未能解决你的问题,请参考以下文章
是否可以将与不同行名关联的值添加在一起,同时保持其他行不变?