PHP - 提交后保留文本

时间:2013-07-09 19:28:39

标签: php select submit

我希望在提交后将选定的文字保留在我的下拉列表中。 这是我的表单中的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分析了其他案例,但我还没有成功。

你能给我一个建议吗?

2 个答案:

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