我知道有一些例子徘徊在HTML选项标签中动态设置所选标签的问题,但我在我想要完成的事情中遇到一个非常困难的break语句和引用问题。
while($info = mysql_fetch_array($companydesc))
{
$output3 .= '<option value="'. $info['company_code'] . if ($result['company']==$info['description']){echo 'selected=\"selected\"'} . '">' . $info['description'] . '</option>';
}
echo $output3;
我收到的错误是带有if语句的行上的意外T_IF。在那里加上if语句是不合法的吗?或者是做适当休息的问题?任何帮助将不胜感激(并希望代码的格式化工作)
答案 0 :(得分:1)
使用三元声明:
while($info = mysql_fetch_array($companydesc)) {
$output3 .= '<option value="'. $info['company_code'].'"'.($result['company']==$info['description'] ? ' selected=\"selected\"' : '') . '>' . $info['description'] . '</option>';
}
echo $output3;
答案 1 :(得分:0)
while($info = mysql_fetch_array($companydesc))
{
if($result['company']==$info['description'])
{
$output3 .= '<option value="' . $info['company_code'] . '" selected = selected>' . $info['description'] . '</option>';
}
else
{
$output3 .= '<option value="' . $info['company_code'] . '">' . $info['description'] . '</option>';
}
}
echo $output3;
答案 2 :(得分:0)
尝试使用个人解决方案以最初的方式修复所有内容,例如
while($info = mysql_fetch_array($companydesc))
是,我觉得,其中一个重要的事情就是让PHP恢复,并最终使代码难以维护,尽管在学习曲线上非常容易。
此功能采用可选的选定参数,并构建您的选择框。这比使用自己的自定义代码为每个查询执行每个选择框要好得多。
这里可能存在语法错误,但通常是
function selectBox($array, $selected=false){
foreach($array as $name => $value){
$options .= '
<option value=" . $name . '"'
. ($selected != false && $selected == $value) ? 'SELECTED' : ''
. '>".$name."</option>";
}
}
值得一提的是,select框要求你传递一个预定义的key =&gt;值对数组,所以你需要有一个额外的帮助函数(你不能只是将它传递给你的数据库返回)
另外值得一提的是,使用mysql_fetch_array($companydesc)
并不是抽象数据库级别。这样的代码将禁止迁移到Postgres或完全不同的数据库系统。