首页 文章

我希望在用户选择该选项后,在我的<select>表单中选择最后选择的选项

提问于
浏览
0
<form method="get" action="index.php">
<select name="choice" size="1" onchange="this.form.submit()">
<option value="a">a</option>
<option value="b">b</option>
<option value="c">C</option>
</select></form>

上面的代码显示了一个选项的下拉菜单,例如a,b或c,用户可以单击 . 在用户从下拉菜单中单击a,b或c后,该选项将在表单中提交,并且页面将使用定义为a,b或c的新$ _GET变量“choice”重新加载 . 我希望用户上次选择的选项现在是列出的默认选定选项 . 例如,在用户点击下拉菜单中的“b”后,“b”在下拉菜单列表中显示为已选中 . 实现这一目标的最佳方法是什么?

4 回答

  • 1

    干得好:

    <?php
    
        if (isset($_REQUEST['choice'])) {
    
            $selected_choice = $_REQUEST['choice'];
    
        }
        else {
    
            $selected_choice = "none";
    
        }
    
    ?>
    
    <html>
    <head>
    </head>
    <body>
    
    <form method="get" action="">
        <select name="choice" size="1" onchange="this.form.submit()">
            <option value="a" <?php if($selected_choice == "a"){ print "selected='selected'"; } ?> >a</option>
            <option value="b" <?php if($selected_choice == "b"){ print "selected='selected'"; } ?> >b</option>
            <option value="c" <?php if($selected_choice == "c"){ print "selected='selected'"; } ?> >C</option>
        </select>
    </form>
    
    </body>
    </html>
    
  • 1

    输出表单时,请执行以下检查:

    <option value="a"<?php if ($_GET['choice'] == "a") {?> selected <?php } ?>>a</option>
    

    然后,您需要将其提取到为您执行条件代码的函数中,或者使用提供的值,标签和已清理的数据输出整个选项元素,并在内部执行检查 .

  • 1

    避免意大利面条代码(或至少减少它)的另一种方法是通过Javascript设置它,如:

    <html>
    <body>
    <form method="get" action="test.htm">
    
    <select name="choice" id="choice" size="1" onchange="this.form.submit()">
      <option value="a">a</option>
      <option value="b">b</option>
      <option value="c">c</option>
    </select>
    
    </form>
    
    <script>
    
        document.getElementById('choice').value = 'b';//replace with something like: <?php echo $_GET['choice'] ?>
    
    </script>
    
    </body>
    </html>
    

    恕我直言这种方法比在每个选项标签中进行测试更好 .

  • 0

    尝试在会话中保存已发布的选择选项,如下所示

    <?php $_SESSION['current_select'] = $_REQUEST['posted_select_option']?>
    

    并在页面加载检查如下

    <script>
    var currentSelect = <?php echo $_SESSION['current_select']; ?>
    $(document).ready(function(){
     if(currentSelect!="")
     $("#choice").val(currentSelect);
    });
    </script>
    

    考虑到您的选择标记的ID如下所示

    <select name="choice" id="choice" size="1" onchange="this.form.submit()">
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="c">C</option>
    </select>
    

相关问题