我目前正在编写一个包含下拉列表的编辑表单。我有一个编辑表单,显示数据库中的当前项目。但我不知道我的下拉菜单如何显示匹配下拉列表的数据库中的当前值。我知道我的解释有点混乱,因此下面的图片会显示更好的解释。
这是我的编辑表单之一,显示下拉菜单。我想要的是使用此下拉菜单视图显示数据库值。
示例:
我的数据库值是Pending
。然后它会在下拉菜单的这个视图中显示Pending
。当我点击下拉菜单时,它会显示如下图:
这就是我要找的东西。以下是我尝试过的代码。
<div class="floatleft">
<select name="select2" class="select-form-standard" >
<option value="0" id="0" name="status">Deleted</option>
<option value="1" id="1" name="status">Active</option>
<option value="2" id="2" name="status">Pending</option>
<option value="2" id="2" name="status">Suspended</option>
</select>
</div>
但我只知道如何设计一个下拉菜单,并且不知道如何像这样工作。我正在使用smarty框架。有人可以给我一些解决方案吗?提前致谢。
为必须选择的选项添加selected
属性。假设$value = 0
<?php $value = 0; ?>
<select name="select2" class="select-form-standard" >
<?php foreach($options as $id => $option) { ?>
<option value="<?php echo $id ?>"<?php
if($id == $value) {
echo " selected";
} ?>><?php echo $option ?></option>
<?php } ?>
</select>
试试这个:
$ statusval是来自您的数据库的变量
<option value="0" id="0" <?php if($statusval==0){echo "selected;"}?> name="status">Deleted</option>
<option value="1" id="1" <?php if($statusval==1){echo "selected;"}?> name="status">Active</option>
<option value="2" id="2" <?php if($statusval==2){echo "selected;"}?> name="status">Pending</option>
<option value="2" id="2" <?php if($statusval==3){echo "selected;"}?> name="status">Suspended</option>
<?php
$databaseValue = $your_database_value;
?>
<select name="select2" class="select-form-standard" >
<option value="0" <?php echo (($databaseValue==0)?"selected":"") ?> id="0">Deleted</option>
<option value="1" <?php echo (($databaseValue==1)?"selected":"") ?> id="1">Active</option>
<option value="2" <?php echo (($databaseValue==2)?"selected":"") ?> id="2">Pending</option>
<option value="3" <?php echo (($databaseValue==3)?"selected":"") ?> id="3">Suspended</option>
</select>
试试这个
/**
* Takes To values (First for option value Second for value to be compare)
* @param Srting $option stores Option Value String
* @param String $value Stores to be compare
* @return String
* @access public
*/
function selectBoxSelection($option, $value) {
if ($option == $value) {
return "selected";
}
}
<select name="status">
<option value style='display:none;'>-SELECT Status--</option>
$select_data=mysql_query("Select status,options from yourtable");
while($result=mysql_fetch_array($select_data)){
echo "<option value ='YourValue' ".selectBoxSelection('YourOptionValue', $result['status']).">".$resule['option']."</option>";
}
</select>
您需要将“selected”属性添加到您希望预选的选项中:
<option value="2" id="2" name="status" selected>Pending</option>
或者如果您使用的是xhtml,则需要使用
selected="selected"
要使这个工作脱离数据库中的值,您需要编写一个if语句来确定数据库值是否与选项值相同,如果是,则回显出选项标记中的“selected”属性。
您可以通过简单的if语句轻松完成。在你的循环内试试这个
<option value="<?= $row['id']) ?> " <?= $row['id']==$categoryIDfromDatabase?'selected':''; ?> >
<?= $row['categoryName'] ?>
</option>
<select name="select2" class="select-form-standard" >
<option><?php echo $select2e; ?></option>
<option value="0" id="0" name="status">Deleted</option>
<option value="1" id="1" name="status">Active</option>
<option value="2" id="2" name="status">Pending</option>
<option value="2" id="2" name="status">Suspended</option>
</select>