2011-05-30 104 views
0

場景如下:在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之間的通信的中間頁面。如何將json響應從一個php頁面重定向到另一個頁面?

如果我在page1.php中使用header(「Location:page2.php」),那麼我無法從page2.php獲取處理的數據(因爲我需要page1.php中的處理數據) 請建議這是怎麼回事可以做到?

+0

這是不可行的。如果你從一個php頁面重定向到另一個頁面,一個301 http響應將被髮送到ajax調用。無論如何,我看不出在兩個php頁面之間進行重定向的問題。也許你可以用條件include/require來解決? – 2011-05-30 10:28:57

回答

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 
0

使page2.php寫入echo json_enode($return_data)

和由json_decode($output,true);檢索page3.php並進入$_SESSION變量和

存儲關於page3.php通過$_SESSION['']

檢索數據參考:

json_encode

json_decode

0

我不知道,你可以重定向像一個Ajax請求。請告訴我,否則如果有人知道。從我對這些事情的瞭解中,聽起來像是你正在用一種不好的方式來做到這一點。

我建議以此爲例:

  • 創建一個類來處理你的 處理。之所以爲 是因爲您可能多次使用同一件東西 而您不必 重複該代碼。

  • 然後,您可以第1頁上,要求這個類文件中像這樣require_once('path/to.file');

  • 所以接下來,該處理第1頁上您的Ajax請求,您可以創建處理的新實例函數或一段腳本並將數據傳遞給它。執行處理並返回數據。

讓我去這裏?不需要重定向,僅包含對象中的處理。

下面是一個例子

$processing = new Processing($_POST); 
$return_data = $processing->run(); 

return json_encode($return_data); 
相關問題