我正在尝试编写一个php脚本,该脚本从数据库中获取一个值,并将其设置为名为gender的下拉列表。我已经写了以下代码:
while($row = mysqli_fetch_assoc($result))
{
$gender = $row['gender'];
$output.= "Gender: <select name='gender'>
<option value='0' ".if ($gender != 'M' || $gender !='F') { echo ('selected="selected"');}.">Select gender</option>
<option value='M' ". if ($gender == 'M') { echo ('selected="selected"');}.">Male</option>
<option value='F' ". if ($gender == 'F') { echo ('selected="selected"');}.">Female</option></select>";
}
由于echo语句(echo ('selected="selected"')
),我得到了一个服务器错误:
The website encountered an error while retrieving http://localhost/search.php. It may be down for maintenance or configured incorrectly.
解决方案是什么?
您可以执行一个简单的比较函数,通过比较两个参数来返回选择字符串:
function selectGender($gender,$out=false)
{
// You may not need these 3 lines if $gender is either empty, M, or F //
$filter = array('M','F');
if(!in_array($gender,$filter))
$gender = false;
if($gender == $out)
return ' selected="selected"';
}
while($row = mysqli_fetch_assoc($result)){
$gender = $row['gender'];
$output.= "Gender: <select name='gender'>
<option value='0'".selectGender($gender).">Select gender</option>
<option value='M'".selectGender($gender,'M').">Male</option>
<option value='F'".selectGender($gender,'F').">Female</option></select>";
}
好吧,这里最好的选择就是删除问题的根源,使其成为if语句:
if ($gender != 'M' && $gender != 'F') {
output .= "...Enter he html with he generic answer selected...";
}
else if ($gender == 'M') {
output .= "...Enter html with Male selected...";
else {
output .= "...Enter html with Female selected...";
}
它可能有点笨重,但它能胜任工作。