我正在使用此代码从数据库重新填充下拉列表:
$city_id = 15;
while($row = mysql_fetch_assoc($result)) {
$selected = ($row['city_id'] == $city_id) ? 'selected="selected" ' : NULL;
echo '"'.$row['city_name'].'"\n';
}
它的工作就像一种魅力,但我的问题是,它们是否是更优雅的解决方案?
解决方法:
我总是使用一个函数,因为选择框是我最终要创建的东西…
function select($name, $default, $values, $style='', $param='') {
$html = '';
foreach($values as $i => $data) {
if (isset($data['noFormat'])) {
$html .= '
(isset($data['style']) ? ' style="'.$data['style'].'" ' : '').'>'.$data['text'].'
';} else {
$html .= '
(isset($data['style']) ? ' style="'.$data['style'].'" ' : '').'>'.htmlentities($data['text']).'
';}
}
$html .= '';
return $html;
}
然后遍历您的查询以构建如下数组:
$default[] = array('value' => '0', 'text' => 'Select a City...');
while($row = mysql_fetch_assoc($result)) {
$list[] = array('value' => $row['city_id'], 'text' => $row['city_name']);
}
$list = array_merge($default,$list);
最后是创建HTML的示例:
select('select','form_el_name',$list['0'],$list,'font-size:12px;','onChange="document.forms[0].submit();"');
希望能帮助到你!
标签:forms,php,database
来源: https://codeday.me/bug/20191105/1998106.html