2

我似乎遇到了问题,经过数小时的搜索和不同的想法,我似乎无法想出这似乎是我的选择选项菜单的简单 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'];

任何帮助表示赞赏或将我重定向到可以解决我的问题的论坛。感谢你们!

4

2 回答 2

0

html

<select id="hotelSelected" name="hotelSelected" onchange="run(this)">
<?php
    sort($hotelName);
    foreach($hotelName as $value):
        echo '<option value="'.$value.'"'.ucfirst($value).'</option>';
    endforeach; 
?>
</select>

javascript

function run(sel) {
    var i = sel.selectedIndex;
    if (i != -1) {
        $.post('updatesession.php', {id:i}, function(){
        alert('Session Updated!');
    });
    }
}

更新会话.php

if(isset($_POST['id'])){
    session_start();
    $_SESSION['hotelName']=id;
}
于 2013-05-14T07:32:20.397 回答
0

您应该session_start();在每个使用会话的 PHP 文件的顶部使用。此外,如果您有一个包含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;
于 2013-05-14T03:13:29.323 回答