在我的list.php
页面上,用户可以从下拉列表中选择一个国家/地区,以显示SQL服务器的选择数据。在此选择中,用户可以选择更新/编辑edit.php
页面上的值。当用户在edit.php
页面上提交更改时,会将其重定向到save.php
页面,然后再返回到初始list.php
页面。我想知道是否可以使用SESSION
变量来存储初始国家/地区选择,以便用户在重定向到list.php
时获得相同的选择。我曾尝试使用session_start ();
,但无法让它发挥作用。
EDITED
这是我的代码:
list.php
的顶部:
<?php session_start(); ?>
形式:
<form name="frmname" id="frmid" action="list.php" method="POST" >
<h4>From: <input type="text" size="6" name="start_date" pattern="[0-9/]+"
placeholder=" 00/00/0000" />
To: <input type="text" size="6" name="end_date" pattern="[0-9/]+"
placeholder=" 00/00/0000" />
<select name="RegioSelect" onchange="this.form.submit();" ><option><?php echo $_SESSION['RegioSelect']; ?></option>
下拉列表填充:
$query1 = "SELECT DISTINCT CountryRegionName FROM tKein23 ORDER BY CountryRegionName";
$stmt1 = $conn->query( $query1 );
while ($data = $stmt1->fetch(PDO::FETCH_ASSOC)){
echo '<option value="'.$data['CountryRegionName'].'">';
echo $data['CountryRegionName'];
echo "</option>";
}
然后我尝试了SESSION_START()
:
<h4><input type="submit" value="Show" name="Selection" />
</select>
</form>
<?php
if(isset($_POST["RegioSelect"])){
$_SESSION['RegioSelect'] = $_POST["RegioSelect"];
}
现在,在其他页面上,我确实得到了$_SESSION['RegioSelect']
变量。在list.php
,我在下拉列表中获取变量,但没有提交。
答案 0 :(得分:1)
session_start()必须首先出现。不仅在PHP脚本上的html之前,而且在任何浏览器输出之前。
要使用基于cookie的会话,必须在向浏览器输出任何内容之前调用session_start()。
<?php session_start(); ?>
<html>
<body>
...
...
<h4><input type="submit" value="Show" name="Selection" />
</select>
</form>
<?php
if (isset($_POST["RegioSelect"]))
$_SESSION['RegioSelect'] = $_POST["RegioSelect"];
答案 1 :(得分:1)
如果表单在同一页面上,请务必移动
if (isset($_POST["RegioSelect"]))
$_SESSION['RegioSelect'] = $_POST["RegioSelect"];
到右上角低于 session_start()
和之前 <html>
否则你必须先重新加载页面 - 这可能不是你想要的
从那里开始,您还可以通过header()