场景如下:在page3.php中有两个名为page1.php和page2.php.onClick的php页面,ajax请求被发送到page1.php。我必须将此请求重定向到处理发生的page2.php。现在我需要在page1.php中获取已处理的数据并将其转换为json并将json响应发送到page3.php。因此page1.php就像page3.php和page2.php之间的通信的中间页面。
如果我在page1.php中使用header(“Location:page2.php”),那么我无法从page2.php获取处理过的数据。(因为我需要page1.php中处理过的数据) 请建议如何做到这一点?
答案 0 :(得分:1)
你能不能只是require
page2.php?
我的意思是:
page3.php -> AJAX request to page1.php
page1.php -> $request = json_decode(AJAX request from page3.php)
require page2.php
page2.php -> process $request
populate $response
page1.php -> echo json_encode($response)
page3.php -> AJAX response from page1.php
答案 1 :(得分:0)
在 page2.php 上写echo json_enode($return_data)
并在json_decode($output,true);
的 page3.php 上检索并存储到$_SESSION
变量和
按$_SESSION['']
参考:
<强> json_encode 强>
<强> json_decode 强>
答案 2 :(得分:0)
我不确定您是否可以重定向这样的ajax请求。如果有人知道,请告诉我。根据我对这些事情的了解,我觉得你使用的方法很糟糕。
我建议将其作为一个例子:
创建一个类来处理你的 处理。原因是 因为你可能会使用同样的东西 不止一次,你不必 然后复制代码。
然后,您可以在第1页上要求此类文件require_once('path/to.file');
接下来,在第1页上处理您的ajax请求的函数或脚本您可以创建处理类的新实例并将数据传递给它。进行处理并返回数据。
到达我要去的地方?无需重定向,只需在对象中包含您的处理。
这是一个例子
$processing = new Processing($_POST);
$return_data = $processing->run();
return json_encode($return_data);