我想从下拉菜单中预先确定(=保留值,如果表单上有错误)我的值,这是我开始的:
...
$priorities = array('low','normal','high');
...
<select name="priority" id="priority">
<?php
foreach ($priorities as $pro){
echo '<option value="'.$pro.'">'.$pro.'</option>';
}
?>
</select>
它完成了这项工作,但没有预先坚持。
现在我想要达到这样的目的:
<select name="priority" id="priority">
<?php
$tel = 0;
foreach ($priorities as $pro){
echo '<option value="'.$tel.'"'.htmlentities('<?php if (isset($_POST[\'priority\']) && (int) $_POST[\'priority\'] === tel) { echo \'selected="selected"\'; } ?>').' >'.$pro.'</option>';
$tel++;
}
?>
</select>
但那当然会出错。
任何人都有任何建议
答案 0 :(得分:2)
以下是我经常实现的方法:
<select name="priority" id="priority">
<?php
foreach ($priorities as $pro)
{
$selected = (isset($_POST['priorities']) && $pro == $_POST['priority']) ? 'selected' : '';
echo '<option value="' . $pro . '" '.$selected.'>' . $pro . '</option>';
}
?>
</select>
以为我会指出你实际上可以像这样缩短ternary
<select name="priority" id="priority">
<?php
foreach ($priorities as $pro)
{
$selected = ($pro == @$_POST['priority']) ? 'selected' : '';
echo '<option value="' . $pro . '" '.$selected.'>' . $pro . '</option>';
}
?>
</select>
抱歉,我有一点可以创建最短的代码:)
答案 1 :(得分:0)
将代码的第二部分更改为:
<select name="priority" id="priority">
<?php
foreach ($priorities as $pro) {
if (isset($_POST['priority']) && $_POST['priority'] == $pro) {
$selected = 'selected="selected"';
}
else {
$selected = null;
}
echo '<option value="'.$pro.'" '.$selected.'>'.$pro.'</option>';
}
?>
</select>
答案 2 :(得分:0)
试试这个
<select name="priority" id="priority">
<?php
$tel = 0;
foreach ($priorities as $pro){
echo '<option value="'
.$tel
.'"'
.(isset($_POST['priority']) && (int)$_POST['priority'] === $tel)?'selected="selected"':''
.' >'
.$pro
.'</option>';
$tel++;
}
?>
</select>
答案 3 :(得分:0)
$priority= array (1=>"low","normal","high");
$select = "<select name=\"priority\"> ;
foreach ($priority as $key => $val) {
$select .= "\t<option val=\"".$key."\"";
if ($val == $yourcheckedvariable) {
$select .= " selected=\"selected\">".$val."</option>\n";
} else {
$select .= ">".$val."</option>\n";
}
}
$select .= "</select>";
echo $select;
使用此代码