PHP下拉框调用自定义函数后下拉选项无法正常显示问题求助
问题根因
功能失效的核心问题是function.php中拼接<option>标签时,错误地将标签尖括号转义为HTML实体,导致浏览器无法识别合法的下拉选项标签,仅会将内容识别为普通文本输出,不会渲染成可选择的下拉项。
具体错误位置
fill_institute_list函数的循环拼接代码存在两处语法错误:
// 原错误代码 $output .= '<option value="'.$row["id"].'"><'.$row["institute"].'</option>';
- 学院名称前多了冗余的转义左尖括号
<,会直接输出<字符 - 结束
</option>标签的左尖括号被错误转义为<,导致结束标签无法被浏览器解析
修复方案
将function.php中对应的循环拼接代码修改为如下内容即可:
function fill_institute_list($connect) { $query = " SELECT * FROM cadre_institute ORDER BY institute ASC "; $statement = $connect->prepare($query); $statement->execute(); $result = $statement->fetchAll(); $output = ''; foreach($result as $row) { // 修正标签写法,不需要额外转义尖括号 $output .= '<option value="'.$row["id"].'">'.$row["institute"].'</option>'; } return $output; }
可选排查补充
如果修改后仍无数据输出,可在数据库查询逻辑后增加错误校验,确认PDO查询是否真的返回了数据:
// 执行查询后加一行验证 var_dump($result);exit;
如果输出为空数组,说明数据库cadre_institute表无数据,或PDO连接配置的账号没有对应表的查询权限。
内容的提问来源于stack exchange,提问作者geeth723
相关产品推荐
相关产品推荐

