记住简单表单上的最后一个选择


Remember the last selection on Simple form

有没有可能当

  • 我从列表中选择一些东西
  • 点击Go

浏览器会记住我在列表中的最后一个选择

<form action="<?php echo $_SERVER ['PHP_SELF']; ?>" method="get" name="search_frm" id="serch_frm">
  <input name="serchStr" type="text" />
  <select name="list">
    <option value="">select</option>
    <option value="client">table client</option> 
    <option value="user">table user</option> 
  </select>
  <input name="submit" type="submit" value="go" />
</form>
例如,

  • 如果我从列表用户表
  • 中选择
  • 点击Go

他将留在那里

你可以使用会话访问一些数据在以后的时间在不同的脚本:

    session_start();
    $_SESSION = $POST['list'];

现在从列表中选择的项目将保持在那里,只要浏览器仍然打开。

如果你想从会话中删除项目,使用:

   unset( $_SESSION['list'] );

并且记住每次你使用会话时你必须在文件的顶部使用(总是):

   session_start();

为了选择"stick",你需要在<option>标签的值之前放入selected这个词。为了做到这一点,你需要使用foreach循环动态生成选项。在循环中,你会看到$_REQUESTif,它匹配在循环中迭代的echo selected的值。

我已经这样做了十几次了,效果很好。

<?php
  $options = array("select", "client", "user");
?>

然后在页面中:

<form action="<?php echo $_SERVER ['PHP_SELF']; ?>" method="get" name="search_frm" id="serch_frm">
  <input name="serchStr" type="text" />
  <select name="list">
  <?php foreach ($options as $option): ?>
    <option <?php if ($_GET['list'] == $option) { echo "selected"; } ?> value="<?php echo $option; ?>"><?php echo $option;?></option>
  <?php endforeach ?>
  </select>
  <input name="submit" type="submit" value="go" />
</form>