Ajax功能异常:选择分类后仅显示表格表头无数据记录
问题排查与修复方案
嘿,我帮你找到了导致数据不显示的几个关键问题,咱们一步步来解决:
1. 下拉菜单传递的参数不匹配
你在HTML的下拉选项里,把value设成了$riga[nome_gruppo],但后端是要根据tipologia来筛选数据的!这就导致你选完分类后,传给2.php的q参数是组名,而不是分类名称,自然查不到对应的数据。
修改HTML里的option行:
echo "<option value='$riga[tipologia]'> $riga[tipologia] </option>";
2. 后端未正确获取GET参数
在2.php里,你直接使用了$q变量,但这个变量根本没被定义!你需要先从GET请求里获取传递过来的参数:
在2.php的开头加上:
$q = $_GET['q'];
另外,为了避免SQL注入风险(虽然是基础场景,但好习惯要养成),可以对参数做转义处理:
$q = mysql_real_escape_string($_GET['q']);
3. 额外优化:废弃的mysql扩展
顺便提一句,mysql_*系列函数已经被PHP官方废弃了,建议换成mysqli或者PDO来操作数据库,这样更安全也更兼容新版本的PHP。比如换成mysqli的话,连接代码可以改成:
$con = mysqli_connect($dbhost, $dbuser, $dbpsw, $dbname);
对应的查询和获取数据的函数也要换成mysqli_query、mysqli_fetch_array等。
为什么去掉WHERE子句就正常?
因为去掉WHERE后,SQL查询的是表中所有数据,不需要依赖任何参数,所以能正常显示;但加上WHERE后,由于参数传递错误+未获取参数,导致查询条件不成立,自然查不到任何数据,就只显示表头了。
内容的提问来源于stack exchange,提问作者Vincenzo Bovino
相关产品推荐
相关产品推荐

