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

AJAX跳转至PHP文件并传递JS变量失败问题求助

问题分析与解决方案

嘿,我来帮你捋捋为啥ID值拿不到~你的代码里有两个关键问题:

1. 请求方式不匹配

你前端用$.post()发送的是POST请求,但后端id.php里用$_GET['ID']去获取GET参数,这俩根本不是一个通道,自然拿不到值啦。

2. 跳转逻辑矛盾

你在AJAX的回调里执行window.location='id.php',这个跳转是一个全新的GET请求,和之前的POST请求完全无关,所以就算POST成功传递了ID,跳转后的页面也不会带上这个参数。

解决方案一:直接用GET跳转(最适合你的需求)

既然你最终目的是跳转到id.php并传递ID,完全没必要用AJAX POST,直接构造带参数的URL跳转就行,简单直接:

修改前端JavaScript函数:

function clicked(clicked_id){
  window.alert("clicked");
  window.alert(clicked_id);
  // 构造带GET参数的URL并跳转
  window.location = 'id.php?ID=' + clicked_id;
}

后端id.php不用修改,$_GET['ID']就能正常获取到ID值了。

解决方案二:如果确实需要先POST处理数据再跳转

如果你得先通过POST把ID传给后端做一些处理(比如存数据库),再跳转显示,那需要调整前后端代码:

后端id.php修改:

<?php
session_start(); // 开启会话用于暂存ID

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // 接收POST过来的ID
    $clickedID = $_POST['ID'];
    // 这里可以加你的业务逻辑,比如存储数据等
    $_SESSION['clickedID'] = $clickedID; // 把ID存在会话里
    header('Location: id.php'); // 跳转到显示页面
    exit;
} else {
    // GET请求时从会话中取出ID
    $clickedID = $_SESSION['clickedID'] ?? '未获取到ID';
    echo 'here at id.php';
    echo $clickedID;
    // 用完可以销毁会话中的ID,避免下次访问残留
    unset($_SESSION['clickedID']);
}
?>

前端JavaScript修改:

function clicked(clicked_id){
  window.alert("clicked");
  window.alert(clicked_id);
  // 发送POST请求,后端会处理跳转
  $.post('id.php',{ID:clicked_id});
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:09:31