Как перенаправить ответ json с одной страницы php на другую? - PullRequest
0 голосов
/ 30 мая 2011

Сценарий выглядит следующим образом: Есть две страницы php с именами page1.php и page2.php.onClick кнопки в page3.php ajax-запрос отправляется на page1.php.Я должен перенаправить этот запрос в page2.php, где происходит обработка.Теперь мне нужно получить обработанные данные в page1.php, преобразовать их в json и отправить ответ json на page3.php.Таким образом, page1.php действует как промежуточная страница для связи между page3.php и page2.php.

Если я использую header ("Location: page2.php") в page1.php, тогда я не могу получить обработанныйданные из page2.php. (поскольку мне нужны обработанные данные в page1.php). Подскажите, пожалуйста, как это можно сделать?

Ответы [ 3 ]

1 голос
/ 30 мая 2011

Можете ли вы не просто 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 голосов
/ 30 мая 2011

Я не уверен, что вы можете перенаправить запрос ajax таким образом. Пожалуйста, покажите мне иначе, если кто-то знает. Из того, что я знаю об этих вещах, мне кажется, что вы используете плохой способ сделать это.

Я бы предложил это в качестве примера:

  • Создайте класс для обработки вашего обработка. Причина, почему потому что вы можете использовать то же самое более одного раза и вам не нужно продублируйте код.

  • Затем вы можете на странице 1 запросить этот файл класса следующим образом: require_once('path/to.file');

  • Итак, функция или фрагмент скрипта, который обрабатывает ваш ajax-запрос на странице 1, позволяет создать новый экземпляр вашего класса обработки и передать ему данные. Выполните обработку и верните данные.

Получить, куда я иду с этим? Не нужно перенаправлять, просто поместите вашу обработку в объект.

Вот пример

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

return json_encode($return_data);
0 голосов
/ 30 мая 2011

на page2.php запись echo json_enode($return_data)

и извлечение на page3.php с помощью json_decode($output,true); и сохранение в переменной $_SESSION и

на page3.php извлечение данных с помощью $_SESSION['']

Ссылка:

json_encode

json_decode

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...