问问题
7467 次
4 回答
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>
恕我直言,这种方法比在每个选项标签中进行测试要好。
于 2012-09-30T15:37:23.403 回答
1
输出表单时,请执行以下检查:
<option value="a"<?php if ($_GET['choice'] == "a") {?> selected <?php } ?>>a</option>
然后,您希望将其提取到一个函数中,该函数要么为您执行条件代码,要么输出整个选项元素以及提供的值、标签和经过内部检查的数据。
于 2012-09-30T15:26:21.307 回答
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>
于 2012-09-30T15:26:40.133 回答
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>
于 2012-09-30T15:30:59.933 回答