如何将不同的会话变量分配给不同的按钮

时间:2016-04-07 19:14:13

标签: php session variables button

我有一个index.php文件,其中包含以下代码,其中我获取存储在我的数据库中的城市名称,打印所有城市,并为每个城市打印一个按钮。示例:拥有我的数据库中的城市(伦敦,纽约和旧金山),我会有类似的内容:

伦敦 - >按钮

纽约 - >按钮

San Franciso - >按钮

 <?PHP
    while($myrow = pg_fetch_assoc($result)) {
    $nameofcity = $myrow[cityname];

    echo $nameofcity;
    $_SESSION['variabletopass'] = $nameofcity;
    echo'<form name"formname" method="post" action="results.php">';
    echo'<input type="submit" name="submit" value="See City">';
    echo'</form>';   
   }
?>

然后我点击了按钮时打开的results.php。

<html>
<body>
<?php
$var_nameofcity = $_SESSION['variabletopass'];
//Here I look in my database for info base on $var_nameofcity
// something like select description from cities where city = $var_nameofcity
//And I print the info
echo  $var_nameofcity;  
echo 'Here it goes the Picture of the city'; 
echo 'description';
?>
</body>
</html>

我的问题是:自

以来
    $_SESSION['variabletopass'] = $nameofcity;
    echo'<form name"formname" method="post" action="results.php">';
    echo'<input type="submit" name="submit" value="See City">';
    echo'</form>'; 

在一段时间内,$ _SESSION ['variabletopass']将只获得最后一个谷,所以无论我按哪个按钮都打开我的最后一个城市(例如:旧金山)。< / p>

我该怎么做,所以传递的变量($ _SESSION ['variabletopass'] = $ nameofcity;)按下按钮时是与通讯城相关联的那个?

非常感谢

1 个答案:

答案 0 :(得分:0)

将城市名称设置为表单中的隐藏输入:

<input type="hidden" name="city" value="<?php echo $nameofcity; ?>" />

然后当您发布表单时,该城市在$ _POST全局中可用作与隐藏输入相同的索引:

<?php $nameofcity = $_POST['city']; ?>

显然,请记住,您希望在读取$ _POSTed输入时进行一些安全检查,以保持脚本注入和可能的SQL注入。