标记,
<span style="padding-left: 76px">
<span style="padding-left:5px">
<select id="select1" name="requestdbtype" value="<?php echo $type ?>">
<?php
$options = array('DB2' => 'DB2',
'MySQL' => 'MySQL',
'Oracle' => 'Oracle',
'PostgreSQL' => 'PostgreSQL',
'SQLite' => 'SQLite',
'SQL Server' => 'SQL Server',
'Sybase' => 'Sybase');
foreach($options as $value => $type){
echo "<option value='$value'>".$row['requestdbtype']."</option>";
}
?>
</select>
</span>
</span>
我在显示选项时遇到问题。显示的当前选项应为$row['requestdbtype']
的值。但是我的显示器只显示当前值作为所有选项,请帮助。
答案 0 :(得分:2)
显而易见的答案当然,所有下拉选项都会显示相同的内容。如果你注意,$ row ['requestdbtype']每次都是一样的。
我假设你要做的是,使用该数组中的所有内容,但设置一个等于$ row ['requestdbtype']的那个当前被选中。这很容易为:
foreach($options as $value => $type){
$selected = ($type == $row['requestdbtype']) ? "selected='selected'" : "";
echo "<option value='$value' $selected>$type</option>";
}
只是抬头, ($ blah == $ blah2)? “有些啰嗦”:“其他等等” 被称为三元运营商。它的作用是检查 ($ blah == $ blah2) 以查看它是真还是假,如果是,则返回 “某些等等“ ,否则会返回 ”其他等等“
三元运算符对于紧凑代码非常有用。
答案 1 :(得分:0)
尝试:
foreach( $options as $value => $type ) {
echo "<option value='" . $value . "'>" . $type . "</option>";
}
答案 2 :(得分:0)
foreach($options as $value => $type){
echo "<option value='".$value."'>".$type."</option>";
}
答案 3 :(得分:0)
您必须使用selected='selected'
属性。
foreach($options as $value => $type)
{
$select="";
if($value==$row["requestdbtype"])
$select="selected='selected'";
echo "<option $select value='$value'>$row[requestdbtype]</option>";
}
答案 4 :(得分:0)
您需要使用$row['requestdbtype']
进行比较,而不是使用HTML。另请注意select
标记的语法:
<select id="select1" name="requestdbtype">
<?php
$options = array('DB2' => 'DB2',
'MySQL' => 'MySQL',
'Oracle' => 'Oracle',
'PostgreSQL' => 'PostgreSQL',
'SQLite' => 'SQLite',
'SQL Server' => 'SQL Server',
'Sybase' => 'Sybase');
foreach ( $options as $value => $type ) : ?>
<option value="<?php echo $value; ?>"<?php if ( $value == $row['requestdbtype'] ) echo ' selected="selected"'; ?>><?php echo $type; ?></option>
<?php endforeach; ?>
</select>
答案 5 :(得分:0)
我认为你的代码必须是
foreach($options as $value => $type){
if($value == $row['requestdbtype'])
echo "<option value='$value' selected = 'selected' >".$type."</option>";
else
echo "<option value='$value' >".$type."</option>";
}
我不知道你的$row['requestdbtype']
价值是多少,但请检查这是$type
然后如果条件将$type
代替$value
以显示当前选项显示已选中。在您的代码中,您放置了$row['requestdbtype']
,这是在selectbox中仅显示当前选项的主要原因。
我希望它对你有所帮助 感谢。