Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 记住下次访问时选择的值_Javascript_Php - Fatal编程技术网

Javascript 记住下次访问时选择的值

Javascript 记住下次访问时选择的值,javascript,php,Javascript,Php,我有一个这样的下拉列表 <select id='test'> <option value='one'>One</option> <option value='two'>Two</option> <option value='three'>Three</option> </select> 如何在第二次时自动显示所选值?首次允许用户从下拉菜单中选择项目。但在第二次显示时,它应显示先前选择的

我有一个这样的下拉列表

<select id='test'>
  <option value='one'>One</option>
  <option value='two'>Two</option>
  <option value='three'>Three</option>
 </select>

如何在第二次时自动显示所选值?首次允许用户从下拉菜单中选择项目。但在第二次显示时,它应显示先前选择的值。如何执行此操作?

您需要设置所选属性


mickjguy

将选项值存储在数组中。检查测试的值是否已过帐$。创建select元素。迭代每个数组值以生成,检查$val是否与$\u POST['test']值相同。如果是,则回显“已选择”。使用ucfirst将第一个字母大写

$vals = array('one', 'two', 'three');
$selected = isset($_POST['test']) ? $_POST['test'] : false;

echo '<select id="test" name="test">';

foreach($vals as $val):
    echo '<option value="',$val,'" ', ($selected == $val) ? 'selected':'','>', ucfirst($val) ,'</option>';
endforeach;

echo '</select>';

你的问题相当广泛,因此我将给你一个简短的选项列表:

曲奇饼 一场 在php中,您可以将用户数据保存在一个文件中,该文件与会话cookie中保存的ID关联。PHP为您做了所有的事情,您需要做的就是使用$\u SESSION变量。 以下是表格: form.php

这是表格提交的地方:

save.php

此解决方案不会让服务器知道用户的设置。它可能与旧浏览器不兼容。 本地存储将信息保存在用户的硬盘上,而无需通知远程服务器。这里有一个菜单,可以记住它的选定值:

<select id='test' onchange="remember(this.selectedIndex);">
  <option disabled="disabled" selected="selected">Select something</option>
  <option value='one'>One</option>
  <option value='two'>Two</option>
  <option value='three'>Three</option>
</select>
<script type="text/javascript">
if(localStorage!=null) {
  if(localStorage["sel"]!=null) {
    document.getElementById("test").selectedIndex = localStorage["sel"];
  }
}
//alert("d");
function remember(index) {
  if(localStorage!=null) {
    localStorage["sel"] = index;
  }
}
</script>

回想我的回答,我没有看到下一次访问的部分

假设您正在处理用户帐户,最好的方法是将所选选项存储在数据库中,一旦用户登录,您就可以根据用户名提取所选选项

用户->所选选项->存储在数据库中

用户登录->调用表单->从数据库中提取的选定选项

如果您没有处理用户帐户,则必须设置cookie,以便在下次访问时记住用户及其选择


请参阅:

您是将其作为表单的一部分发布,还是希望将值存储在会话中?定义第二次?在回发会话、cookie甚至HTML5本地存储之后。devuser,您需要将值存储在某个位置,在哪里完成?这一点都没有帮助。
<?php
/**NO TEXT OUTPUT ABOVE THIS LINE!!!**/
session_start();
if(!isset($_SESSION["sel"]))
   $_SESSION["sel"] = null;
?>
<?php
/**NO TEXT OUTPUT ABOVE THIS LINE!!!**/
session_start();
$_SESSION["sel"] = $_POST["select"];
?>
//Get a cookie
if($_COOKIE["sel"] == "two") {
    ... do something ...
}

//Set a cookie:
setcookie ("sel", $_POST["select"], time()+3600*24*7);  //Expires in 7 days

//Delete a cookie
setcookie ("sel", "", 0);  //Expired in 20th century
<select id='test' onchange="remember(this.selectedIndex);">
  <option disabled="disabled" selected="selected">Select something</option>
  <option value='one'>One</option>
  <option value='two'>Two</option>
  <option value='three'>Three</option>
</select>
<script type="text/javascript">
if(localStorage!=null) {
  if(localStorage["sel"]!=null) {
    document.getElementById("test").selectedIndex = localStorage["sel"];
  }
}
//alert("d");
function remember(index) {
  if(localStorage!=null) {
    localStorage["sel"] = index;
  }
}
</script>