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面板里有没有返回预期的内容
- 检查Request Payload里是否存在
- 如果你是要传递下拉框的选中值,记得把
var dato = 50;替换成var dato = $('#sel_edificio').val();
内容的提问来源于stack exchange,提问作者Bsn
相关产品推荐
相关产品推荐

