我有一个“页面”,包含在标签页(主页/联系人/详细信息)等页面中。 这个“包含页面”有3个下拉列表。我能够存储选定的下拉值并将其显示在下拉框中。 我想要的是所选的下拉值也应显示在其他页面的下拉列表中。 简而言之,我希望所选页面的所选下拉值保持一致。 我正在考虑使用会话,但不确定如何使用它。
答案 0 :(得分:0)
您需要在更改后存储值,然后在每个页面上存储:
<?php
session_start();
...
echo $_SESSION['dropdown1'];
?>
但也许您最好使用Javascript并将值存储在cookie中,因为这可能比在Javascript事件发生时更新SESSION变量更容易(您必须使用AJAX执行此操作)。这是涉及数据库还是仅仅是语言或主题等设置?
答案 1 :(得分: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;
答案 2 :(得分: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
范围内,您可以将值添加到会话变量中:
<强> secondaryScript.php 强>
<?php
session_start();
$_SESSION['dropDownValue'] = $_POST['value'];
?>
现在,在每个页面中,您可以引用此值:
...
echo $_SESSION['dropDownValue'];
...
当然,对于选择字段,您需要根据此值检查选项,并将selected
属性添加到匹配的属性中。如果你不知道如何,我也可以帮助你。