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

如何向PHP文档传值并跳转?JQuery传POST参数跳转后接收报错

问题根本原因

你触发报错是因为发起了两次独立的请求到orderdetail.php:

  • 第一次是$.post()发起的异步POST请求,这次请求确实携带了id参数,后端本次处理可以正常拿到id值,但是这次请求的返回结果没有被你用到页面渲染上
  • 第二次是window.location.href触发的页面跳转请求,这是标准的GET请求,没有携带任何POST参数,你看到的页面报错就是这次GET请求返回的结果,此时$_POST['id']自然不存在

可行解决方案

你可以根据业务需求选择以下任意一种方案修复:

方案1:用表单提交替代AJAX+跳转逻辑(推荐,符合原生POST跳转逻辑)

直接构造动态表单发起POST跳转,不需要多余的AJAX请求:

$(document).on('click', '.orderdetail', function () {
    var _id = $(this).attr("id");
    // 构造临时表单
    var form = $('<form method="post" action="orderdetail.php"></form>');
    form.append('<input type="hidden" name="id" value="' + _id + '">');
    $('body').append(form);
    form.submit();
})

PHP代码不需要修改,同时建议加参数存在性判断避免异常:

// orderdetail.php
if (isset($_POST['id'])) {
    echo $_POST['id'];
} else {
    // 自定义参数缺失的处理逻辑
    echo "参数缺失";
}

方案2:跳转时携带GET参数

如果你不需要严格用POST方式传递参数,可以把id放到跳转的URL参数中:

$(document).on('click', '.orderdetail', function () {
    var _id = $(this).attr("id");
    // 直接跳转带参数,不需要额外AJAX请求
    window.location.href = "orderdetail.php?id=" + _id;
})

PHP代码调整为从GET参数取值即可:

echo $_GET['id'];
// 或者用$_REQUEST兼容两种传参方式
// echo $_REQUEST['id'];

内容的提问来源于stack exchange,提问作者mhm.map

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:57:02