问题描述
|
场景如下:有两个名为page1.php和page2.php.on.php的php页面,分别单击page3.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中的已处理数据)
请提出如何做到这一点?
解决方法
你不仅可以
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
, 在page2.php上写echo json_enode($return_data)
并按json_decode($output,true);
在page3.php上检索,并存储到into4ѭ变量中,
在page3.php上按ѭ5检索数据
参考:
json_encode
json_decode
, 我不确定您是否可以像这样重定向ajax请求。如果有人知道,请告诉我否则。据我对这些事情的了解,在我看来,您正在使用一种糟糕的方法来执行此操作。
我建议举个例子:
创建一个类来处理您的
处理。原因是
因为你可能会用同样的东西
不止一次,您不必
然后复制代码。
然后,您可以在第1页上,要求使用此类文件,如require_once(\'path/to.file\');
因此,接下来,在页面1上处理ajax请求的函数或脚本,您可以创建处理类的新实例并将数据传递给它。进行处理并返回数据。
得到我要去哪里?无需重定向,只需将您的处理包含在一个对象中即可。
这是一个例子
$processing = new Processing($_POST);
$return_data = $processing->run();
return json_encode($return_data);