我从数据库中选择要在html / php上编辑的条目。我写的代码(从我所学到的)不起作用。我需要一个更好的工作。我搜索过Google,但我看到的只是标记的默认值。
$civil_status = $row[8]; //value from selecting the database
<tr>
<td>Civil Status:</td>
<td><select name="civil_status" value='<?php $civil_status ?>'>
<option value="single">Single</option>
<option value="married">Married</option>
</select></td>
</tr>
答案 0 :(得分:1)
您需要在选项标记中设置selected="selected"
。尝试这样
$civil_status = $row[8]; //value from selecting the database
<tr>
<td>Civil Status:</td>
<td><select name="civil_status">
<option value="single" <?php if($civil_status == 'Single') echo 'selected="selected"';?>>Single</option>
<option value="married" <?php if($civil_status == 'Married') echo 'selected="selected"';?>>Married</option>
</select></td>
</tr>
答案 1 :(得分:1)
您需要选中要选择的选项,然后打印所选标签:
$civil_status = $row[8]; //value from selecting the database
<tr>
<td>Civil Status:</td>
<td><select name="civil_status" >
<option value="single" <?php $civil_status=="single" ? print "selected" : ""; ?> >Single</option>
<option value="married" <?php $civil_status=="married" ? print "selected" : ""; ?> >Married</option>
</select></td>
</tr>
答案 2 :(得分:1)
你可以用快速和肮脏的方式做到:
<tr>
<td>Civil Status:</td>
<td>
<select name="civil_status">
<option value="single"<?php print($civil_status == "single" ? ' selected="selected"' : ""); ?>>Single</option>
<option value="married"<?php print($civil_status == "married" ? ' selected="selected"' : ""); ?>>Married</option>
</select>
</td>
</tr>
或者您可以编写辅助函数来生成整个<option>
集:
function select_options($options, $selected)
{
$result = "";
foreach($options as $value => $label)
{
$result .= '<option value="' .
htmlentities($value, ENT_QUOTES, "UTF-8") . '"' .
($selected == $value ? ' selected="selected"' : "") . '>' .
htmlentities($label, ENT_QUOTES, "UTF-8") . '</option>';
}
return $result;
}
select_options 需要两个参数。第一个是关联数组(key => value, ...
),其中数组键是各个value
标记的<option>
参数值,以及数组值包含要为每个键显示的标签。
第二个参数指定要在选择框中选择的项目的value
。
然后该函数遍历数组并为每个项目提取value
和label
。然后它将相应的<option>
标记附加到结果字符串。它还会对参数调用htmlentities以避免cross-site scripting个漏洞。
然后是踢球者:如果它看到应该在选择框中选择的项目($selected == $value
),它会自动将selected="selected"
参数附加到<option>
标记,从而选择那个元素。
要使用此功能,请执行以下操作:
<tr>
<td>Civil Status:</td>
<td>
<select name="civil_status">
<?php
print(select_options(array(
"single" => "Single",
"married" => "Married"
), $civil_status));
?>
</select>
</td>
</tr>
在您创建选择菜单所需的任何位置都可以更清洁,更可重复使用。
答案 3 :(得分:0)
你能试试吗,
<?php
$civil_status = $row[8]; //$civil_status ='married';
$civil_statuses = array('single', 'married');
?>
<select name="civil_status">
<?php foreach($civil_statuses as $status){ ?>
<option value="<?php echo $status;?>" <?php echo if($civil_status==$status){ echo 'selected';} ?> ><?php echo ucfirst($status);?></option>
<?php }?>
</select>