JQuery通过Ajax传递变量到PHP时获取值为null的问题
解决Ajax传值到PHP后var_dump返回null的问题
核心问题分析
- PHP变量未初始化:你的代码里使用了
$idCarrossel但从未给它赋值,不管if条件是否成立,这个变量都不存在,所以var_dump($idCarrossel)必然返回null。 - 判断条件不匹配:alert显示传递的ID是
1、2、3,但PHP里判断的是$_POST['idCarrosselAtivo'] === 'c1',实际传递的值和判断条件完全不匹配,导致永远进入else分支。
修正后的PHP代码
<?php // 先从POST请求中获取传递的ID,空值时默认设为null $idCarrossel = $_POST['idCarrosselAtivo'] ?? null; // 根据实际传递的ID值调整判断条件,比如判断是否为'1' if(isset($_POST['idCarrosselAtivo']) && $_POST['idCarrosselAtivo'] === '1') { echo $idCarrossel; } else { var_dump($idCarrossel); } ?>
额外优化建议
- 获取滑动后的目标轮播项ID:
slide.bs.carousel事件触发时,.carousel-item.active还是滑动前的旧项,如果你想获取即将显示的新项ID,改用事件对象的relatedTarget属性:
$("#myCarousel").on('slide.bs.carousel', function(e) { var targetId = $(e.relatedTarget).attr('id'); alert(targetId); $.ajax({ type: "POST", url: "teste.php", data: { idCarrosselAtivo: targetId }, success: function(data) { console.log(data); }, error: function(xhr, status, error) { console.error('请求出错:', error); } }); })
- 添加Ajax错误回调:方便排查请求失败的原因,比如路径错误、服务器报错等。
内容的提问来源于stack exchange,提问作者Caio Galdino
相关产品推荐
相关产品推荐

