带有表单数据的下拉菜单

时间:2014-04-02 06:13:07

标签: php html forms

我需要创建一个下拉菜单,默认为通过表单传入的帐户类型。

我知道我可以将'selected'作为选项属性,使该选项成为默认选项。

但我并不总是知道这种类型是什么,所以如何让它默认匹配类型。

这是我的代码:

<?php
$type=$_POST['Type'];
echo "<select name='AccType'>
<option>User Type</option>
<option value='admin'>Administrator</option>
<option value='ban'>Banned</option>
<option value='mod'>Moderator</option>
<option value='new'>New User</option>
<option value='spec'>Special</option>
</select>";
?>

所以说,例如,正在编辑主持人组中的帐户,因此表单传入'mod'类型。

我希望页面默认显示菜单中的“主持人”,这样用户就不必选择它来确保帐户保持为主持人,以防他们提交而不检查。

仅使用PHP和HTML是否可行?

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作:创建所有选项值和文本的数组:

$options = array( 'admin' => "Administrator", 'ban' => "Banned", 'mod' => "Moderator", 'new' => "New User", 'spec' => "Special" );

每个键对应一个option value,数组中的每个值对应于显示给用户的文本。

然后,您只需首先显示option变量中提交的$_POST

<?php
$type = $_POST['type'];
echo "<select name='AccType'>";
echo "<option disabled>User Type</option>"; // note disabled attribute.
if(array_key_exists($type)) {
    echo "<option value='$type' selected>$options[$type]</option>";
}

// echo the rest of the fields.
for($options as $value => $text) {
    if(strcmp($value, $type) !== 0) {
        echo "<option value='$value'>$text</option>";
    }
}

echo "</select>";
?>

答案 1 :(得分:0)

试试这个 -

<?php
$type=$_POST['Type'];
$data=array(
'admin'=>'Administrator',
'ban'=>'Banned',
'mod'=>'Moderator',
'new'=>'New User',
'spec'=>'Special',
);

echo "<select name='AccType'>";
echo "<option value='.$type.' selected='selected' >.$data[$type].</option>";
foreach($data as $key=>$val)
{
if($key!=$type)
{
echo "<option value='.$key.'>.$val.</option>";
}
}


echo "</select>";
?>