You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ajax脚本在MySQL填充下拉框时无法获取PHP返回结果求助

我帮你排查出几个关键问题,这些问题正是导致Ajax无法正常工作的根源:


问题1:SQL查询缺失必要字段

你当前的查询语句只选取了name字段,但代码里试图获取$row["company_id"],这会触发Undefined index错误。错误信息会直接输出到页面中,破坏HTML结构,导致jQuery无法正确绑定下拉框的change事件。

问题2:PHP语法错误

主文件里的这句代码存在引号未闭合的问题:

echo '<option value=""></option>;'

末尾的单引号没闭合会导致PHP解析失败,同样会破坏页面的HTML结构。

问题3:错误处理函数混用

你用mysqli_query()执行查询,但错误提示用了mysql_error()——这两个属于不同的数据库扩展,应该换成mysqli_error($connection)才能正确输出mysqli的错误信息。


修复后的代码示例

主PHP文件的下拉框部分

</div>
<p>Company <span>*</span></p>
<span class="icon-case"><i class="fa fa-comments-o"></i></span>
<select name="company" id="company">
    <?php
    // 修复引号闭合问题
    echo '<option value=""></option>';
    // 修复SQL查询,添加company_id字段
    $query="SELECT `company_id`, `name` FROM `companies` ORDER BY `name` ASC";
    $result=mysqli_query($connection,$query) or die ("Query to get data from sector table failed: ".mysqli_error($connection));
    while ($row=mysqli_fetch_array($result)) {
        $company_id=$row["company_id"];
        $company_name=$row["name"];
        echo "<option value=\"$company_id\"> $company_name </option>";
    }
    ?>
</select>
</div>
</div>
<div id="show">

优化后的get-data.php(添加容错处理)

<?php
// 避免未传参时出现Undefined index错误
$output = isset($_POST['company']) ? $_POST['company'] : '';
echo $output;
?>

额外建议

开发环境下可以开启PHP错误显示,方便快速排查这类语法或变量错误:

// 在PHP文件最顶部添加
error_reporting(E_ALL);
ini_set('display_errors', 1);

修复这些问题后,页面的HTML结构会恢复正常,jQuery就能正确监听下拉框的选择事件,Ajax请求也能正常工作了。

内容的提问来源于stack exchange,提问作者Tommaso Lazzari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:33:53