我希望在提交后将选定的文字保留在我的下拉列表中。
这是我的表单中的select
<form id="form1" method="post" action="">
<input type="text" name='search' id='search' />
<?php
$db = mysql_connect($dbHost,$dbUser,$dbPass);
mysql_select_db($dbname,$db);
$sql = mysql_query("SELECT * FROM adminklasifier");
while($row = mysql_fetch_array($sql)) {
$clsfr = $row['klasifier'];
$sql = mysql_query("SELECT * FROM adminklasifier");
echo '<select name="cmake" id="cmake" onchange="val();" autofocus width="10">';
echo '<option value="">-Pilih Domain Klasifikasi-</option>';
while($row = mysql_fetch_array($sql)) {
echo '<option ' . ($clsfr==$row['klasifier']) . ' value="'.$row['klasifier'].'">'.$row['klasifier'].'</option>';
}
echo '</select>';
}
?>
<input type="submit" id='button' name='button'></input>
</form>
我在Keep values selected after form submission分析了其他案例,但我还没有成功。
你能给我一个建议吗?
答案 0 :(得分:1)
发布的用户响应将显示在您网页上的$_POST
数组中。在您的情况下,“cmake”表单字段的值将以$_POST['cmake']
的形式提供。当您遍历查询结果时,只需将“选定”打印到适当的选项中即可。
echo '<option ' . ($clsfr==$row['klasifier']) . ' value="'.$row['klasifier'].'"'.(($_POST['cmake'] == $row['klasifier']) ? 'selected=selected' : NULL).'>'.$row['klasifier'].'</option>';
答案 1 :(得分:0)
我总是喜欢使用表单助手来创建我的选择
function formSelect($name, $options, $value, $attributes = array()){
$str = "<select name='".$name."'";
foreach($attributes as $k=>$v){
$str.=" ".$k."='".$v."'";
}
$str.= ">";
foreach($options as $optionLabel=>$optionValue){
$str.= "<option value='".$optionValue."' ";
if($value == $optionValue) $str.= "selected='selected'";
$str.= ">".$optionLabel."</option>";
}
$str.= "</select>";
return $str;
}
然后在你的表格中,你可以这样做。
<form id="form1" method="post" action="">
<input type="text" name='search' id='search' />
<?php
$db = mysql_connect($dbHost,$dbUser,$dbPass);
mysql_select_db($dbname,$db);
$options = array();
$sql = mysql_query("SELECT * FROM adminklasifier");
while($row = mysql_fetch_array($sql)) {
$options[$row['klasifier']] = $row['klasifier'];
}
// add the default option
array_unshift($options, "-Pilih Domain Klasifikasi-");
// call the helper
$attributes = array("onchange"=>"val();","autofocus"=>"autofocus","width"=>"10");
echo formSelect("cmake", $options, isset($_POST["search"])?$_POST["search"]:"", $attributes);
?>
<input type="submit" id='button' name='button'></input>
</form>