我试图为用户点击提交时在下拉菜单中选择的位置设置 session 变量。目标是将此变量传递到另一个 php 页面,以便我可以显示他们选择的下拉选项以及来自 MYSQL 表的与其关联的两个值。
下面是我的第一个 php 文件中的代码部分。它显示了根据 MYSQL 数据库的值列表创建的下拉列表,以及我尝试为所选选项设置 session 变量的位置。
session_start();
<form action="/locationsprocessing.php" method="post">
<select id="locations" name="locations"><? echo $option; ?></select>
<input type="submit" value="Submit" name="submit" id="submit">
</form>
<?php
if (isset($_POST['submit'])) {
$_SESSION['locations'] = $_POST['locations'];
$_SESSION['animal'] = 'cat';
}
下面是第二页中的代码,我在其中调用 session 变量进行显示。正如您所看到的,我输入了另一个变量用于测试目的。它应该显示“cat”,而且确实如此。
session_start();
echo $_SESSION['animal'];
echo $_SESSION['locations'];
还需要注意的是,locationsprocessing.php 使用 header 运行重定向。但这实际上就是该文件的全部作用。
我错过了什么吗?我经历了无数次不同的尝试,并且一直盯着这段代码。我不明白为什么会这样
最佳答案
您需要在需要使用 session 的每个页面中启动 session :
<form action="/locationsprocessing.php" method="post">
<select id="locations" name="locations"><? echo $option; ?></select>
<input type="submit" value="Submit" name="submit" id="submit">
</form>
<?php
if (isset($_POST['submit'])) {
session_start();
$_SESSION['locations'] = $_POST['locations'];
$_SESSION['animal'] = 'cat';
}
关于php - session 变量未发送到下一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22343145/