我需要创建一个下拉菜单,默认为通过表单传入的帐户类型。
我知道我可以将'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是否可行?
答案 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>";
?>