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>
あなたのselectタグが以下のような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 に答える