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

Ajax无法通过POST方法向PHP传递数据问题求助

解决Ajax POST向PHP传递数据失效的问题

先看你代码里最核心的问题:在Ajax的success回调里,你又调用了$('#test').load('uno.php')——这会发起一个全新的GET请求去请求uno.php,完全忽略了之前POST请求已经拿到的响应结果,相当于白做了前面的POST操作,这就是你觉得数据没传过去的主要原因。

给你修改后的前端代码,直接利用Ajax返回的响应更新页面:

$(document).ready(function (){
    $('#sel_edificio').load('data.php');
    $( ".form-control" ).change(function() {
        var dato = 50; // 要是想传下拉框选中值,改成 $('#sel_edificio').val() 即可
        $.ajax({
            method: "POST",
            data: {'key': dato},
            url: "uno.php",
            success: function(response){
                // 直接用POST请求返回的内容更新test元素
                $('#test').html(response);
                // 如果需要把返回值填入指定输入框,比如假设response是你要的学生数
                // $('#NumEstudiantes').val(response);
            },
            // 加上错误回调,方便排查请求异常
            error: function(xhr, status, error){
                console.log('请求出错:', error);
            }
        });
    });
});

同时要确保uno.php里正确接收并处理POST参数,示例代码如下:

<?php
// 先检查是否接收到POST参数
if(isset($_POST['key'])){
    $receivedData = $_POST['key'];
    // 这里写你的业务逻辑,比如查询数据库、计算数据等
    echo $receivedData; // 示例:直接返回接收到的数据,前端会拿到这个值
} else {
    echo '未接收到有效参数';
}
?>

最后给你几个实用的调试建议:

  • 打开Chrome开发者工具(按F12),切换到Network标签,触发下拉框change事件后,查看POST请求的详情:
    • 检查Request Payload里是否存在key:50的参数
    • 查看Response面板里有没有返回预期的内容
  • 如果你是要传递下拉框的选中值,记得把var dato = 50;替换成var dato = $('#sel_edificio').val();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:54:37