PHP将MySQL查询的分类值传入URL仅显示单个词但HTML输出正常如何解决
问题原因
- 你拼接的
a标签href属性没有用引号包裹,当分类值包含空格时,浏览器会将空格后的内容识别为HTML标签的其他属性,直接截断了URL参数值 - URL规范不允许直接传递空格、中文等特殊字符,需要先对参数值做URL编码才能完整传递
修复方案
修改拼接逻辑,给href属性加引号包裹,同时对URL参数部分使用urlencode()函数编码即可,修复后的代码如下:
<?php foreach($conn->query('SELECT book_category, COUNT(*) FROM books GROUP BY book_category') as $row) { echo "<tr>"; echo "<td><a href=\"sidebar_cat_display.php?book_cat=" . urlencode($row['book_category']) . "\">" . $row['book_category'] . "</a></td>"; echo "</tr>"; } ?>
补充说明
你在sidebar_cat_display.php页面接收参数时不需要手动解码,PHP全局变量$_GET['book_cat']会自动完成URL解码操作,直接读取就能拿到完整的带空格的分类值。
内容的提问来源于stack exchange,提问作者Isabella
相关产品推荐
相关产品推荐

