0

我有一个包含在选项卡(主页/联系人/详细信息)页面等的“页面”。这个“包含的页面”有 3 个下拉菜单。我能够存储选定的下拉值并将其显示在下拉框中。我想要的是选定的下拉值也应该显示在其他页面下拉列表中。简而言之,我希望所选的下拉值在所有页面中保持一致。我正在考虑使用会话,但不确定如何使用它。

4

3 回答 3

0

您需要在更改时存储该值,然后在您需要执行此操作的每个页面上:

<?php
session_start();
...
echo $_SESSION['dropdown1'];
?>

但也许您最好使用 Javascript 并将值存储在 cookie 中,因为这可能比在 Javascript 事件发生时更新 SESSION 变量更容易(您必须使用 AJAX 来执行此操作)。这涉及数据库还是只是语言或主题等设置?

于 2013-09-11T12:48:16.133 回答
0

注意:我已经重写了我的答案以解决解决方案,请参阅下面的评论以获取解释。

由于您使用单独的文件来显示每个页面而不是使用 ajax,因此会话似乎是最好的选择。不幸的是,只要选项更改,您仍然需要设置这些会话变量。

我决定不为此解决方案使用 cookie,因为关闭 cookie 的人比关闭 javascript 的人多。

您可以决定在页面更改时设置会话变量,也可以在每次选择框更改值时设置会话变量。我建议做前者,因为它可以减少服务器上的负载(稍微说一下——你总是想寻找节省开销的方法)。因此,要在 jQuery 中执行此操作,您需要一个可以接受值然后将其放入会话变量的辅助脚本。

在您的每个页面中,您首先需要开始一个会话(或加入已经存在的会话):

<?php
session_start();
?>

当用户单击其中一个选项卡并将下拉列表中的数据传递给脚本时,您将需要 jQuery 来调用此辅助脚本:

每页的某处

$('#tab').click( function() {
    var ddvalue = $("#dropDown").val();
    $.ajax({
        url: 'secondaryScript.php',
        type: 'POST',
        data: {
            'value' : ddvalue
        }.
        success: function() {
            //redirect to page that was clicked
            location.href = 'nextpage.php';
        }
    });
});

现在,secondaryScript.php您可以将值添加到会话变量中:

二级脚本.php

<?php
session_start();
$_SESSION['dropDownValue'] = $_POST['value'];
?>

现在,在每个页面中,您都可以引用此值:

...
echo $_SESSION['dropDownValue'];
...

当然,对于选择字段,您需要根据该值检查您的选项,并selected为匹配的属性添加一个属性。如果你不知道怎么做,我也可以帮你。

于 2013-09-11T13:19:30.257 回答
0

第一页发布到 php 脚本

<form method="POST" action="anotherpage.php> //This is the first page which is
                                             //HTML page
<select name="selected"> 
<option value="Foo">Foo</option>
<option value="Bar">Bar</option>
</select>
</form>

第二页:anotherpage.php

<?php
$value=$_POST["selected"];
session_start();
$_SESSION["value"]=$value; // The value is stored in session , it can be used in
                           // subsequent pages
?>

后续页面

session_start(); //we just have to session_start() then we can use $_SESSION["value"]
echo<<<FOO
    <select>
   <option value="$_SESSION["value"]">$_SESSION["value"]</option>
   <option value="Bar">Bar</option>
    </select>
 FOO;
于 2013-09-11T12:50:58.840 回答