我似乎遇到了问题,经过几个小时的搜索和弄乱不同的想法,我似乎无法想出这似乎是我的选择选项菜单中的简单PHP会话问题。
我想要做的只是简单地从下拉列表中选择的酒店名称,直到它被更改,这适用于每一页。所以我想,是的,我们可以使用Sessions。似乎不能很好地工作,因为它不断刷新数据。这是我的代码,也许你们其中一个人可以提出解决方案。我真的很感激!
我们正在使用json文件填充我们获得的菜单,使用CURL调用数据然后解码json。
以下是下拉代码:
<select id="hotelSelected" name="hotelSelected">
<?php
sort($hotelName);
foreach($hotelName as $value):
echo '<option value="'.$value.'"'.ucfirst($value).'</option>';
endforeach; ?>
</select>
然后我尝试通过这样做来创建一个会话:
$_SESSION['hotelName'] = $hotelName;
现在我需要这个会话来继续每一页。并且可能通过使用这个来回显某些页面:
echo $_SESSION['hotelName'];
感谢任何帮助或将我重定向到可以解决我的问题的论坛。谢谢你们!
答案 0 :(得分:0)
您应该在每个使用会话的PHP文件的顶部使用session_start();
。
此外,如果您的表单包含SELECT
标记,则在提交表单后,您应使用$_POST['hotelSelected']
来获取用户选择的选项的值。
编辑1:
<select id="hotelSelected" name="hotelSelected">
<?php
sort($hotelName);
foreach($hotelName as $key=>$value):
echo '<option value=($_SESSION['hotelname'][$key]):"'.$_SESSION['hotelname'][$key].'"'.ucfirst($_SESSION['hotelname'][$key]).'?"'.$value.'"'.ucfirst($value).'</option>';
endforeach; ?>
</select>
<?php
$_SESSION['hotelname']=$hotelname;
答案 1 :(得分:0)
<select id="hotelSelected" name="hotelSelected" onchange="run(this)">
<?php
sort($hotelName);
foreach($hotelName as $value):
echo '<option value="'.$value.'"'.ucfirst($value).'</option>';
endforeach;
?>
</select>
function run(sel) {
var i = sel.selectedIndex;
if (i != -1) {
$.post('updatesession.php', {id:i}, function(){
alert('Session Updated!');
});
}
}
if(isset($_POST['id'])){
session_start();
$_SESSION['hotelName']=id;
}