Php 我希望在用户选择选项后,在我的表单中选择最后一个选择的选项

Php 我希望在用户选择选项后,在我的表单中选择最后一个选择的选项,php,javascript,html,Php,Javascript,Html,上面的代码显示了一个选项下拉菜单,如a、b或c,用户可以单击。用户从下拉菜单中单击a、b或c后,该选项将以表单形式提交,页面将重新加载定义为a、b或c的新$u GET变量选项。我希望用户上次选择的选项现在成为列出的默认选定选项。例如,用户从下拉菜单中单击b后,b显示为下拉菜单列表中的选定项。完成此操作的最佳方法是什么?在输出表单时,执行如下检查: <form method="get" action="index.php"> <select name="choice" size=

上面的代码显示了一个选项下拉菜单,如a、b或c,用户可以单击。用户从下拉菜单中单击a、b或c后,该选项将以表单形式提交,页面将重新加载定义为a、b或c的新$u GET变量选项。我希望用户上次选择的选项现在成为列出的默认选定选项。例如,用户从下拉菜单中单击b后,b显示为下拉菜单列表中的选定项。完成此操作的最佳方法是什么?

在输出表单时,执行如下检查:

<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>

然后,您希望将其提取到一个函数中,该函数可以为您执行条件代码,也可以使用提供的值、标签和经过消毒的数据输出整个option元素,并在内部执行检查。

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

<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>
然后,您需要将其提取到一个函数中,该函数要么为您执行条件代码,要么使用提供的值、标签和经过消毒的数据输出整个选项元素,并在内部执行检查。

给您:

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

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

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

<?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>
<script>
var currentSelect = <?php echo $_SESSION['current_select']; ?>
$(document).ready(function(){
 if(currentSelect!="")
 $("#choice").val(currentSelect);
});
</script>
和页面加载检查,如下所示

<?php $_SESSION['current_select'] = $_REQUEST['posted_select_option']?>
考虑到您选择的标签具有如下id

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

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

<?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>
<script>
var currentSelect = <?php echo $_SESSION['current_select']; ?>
$(document).ready(function(){
 if(currentSelect!="")
 $("#choice").val(currentSelect);
});
</script>
和页面加载检查,如下所示

<?php $_SESSION['current_select'] = $_REQUEST['posted_select_option']?>
考虑到您选择的标签具有如下id

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

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

<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>

IMHO这种方法比在每个选项标记中进行测试要好。

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

<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>

我认为这种方法比在每个选项标记中进行测试更好。

您使用的是smarty还是其他模板引擎?我在index.php文档中使用的是原始html、php、javascript和jquery代码。您使用的是smarty还是其他模板引擎?我在index.php文档中使用的是原始html、php、javascript和jquery代码