Markup,
<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']
的值。但是我的显示器仅显示当前值作为所有选项,请帮助。
显而易见的
答案是,当然,所有下拉选项都将显示相同的内容。如果你注意的话,$row['requestdbtype']每次都是一样的。
我假设您要做的是,使用该数组中的所有内容,但将等于$row['requestdbtype']的数组设置为当前选择的数组。这就像:
foreach($options as $value => $type){
$selected = ($type == $row['requestdbtype']) ? "selected='selected'" : "";
echo "<option value='$value' $selected>$type</option>";
}
只是抬头,($blah == $blah 2) ?"Some Blah":"Other Blah"称为三元运算符。它所做的是检查($blah == $blah 2)以查看它是真的还是假的,如果为真,则返回"一些等等",否则返回"其他等等"
三元运算符对于紧凑代码非常有用。
您需要
使用$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>
尝试:
foreach( $options as $value => $type ) {
echo "<option value='" . $value . "'>" . $type . "</option>";
}
我认为你的代码一定是
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
,然后在 if 条件下$type
代替显示当前选项显示选中的$value
。在您的代码中,您已经输入了$row['requestdbtype']
这是在选择框中仅显示当前选项次数的主要原因。
希望对您有所帮助谢谢。
你必须
使用selected='selected'
属性。
foreach($options as $value => $type)
{
$select="";
if($value==$row["requestdbtype"])
$select="selected='selected'";
echo "<option $select value='$value'>$row[requestdbtype]</option>";
}
foreach($options as $value => $type){
echo "<option value='".$value."'>".$type."</option>";
}