Как отправить значения из PHP в JQuery: эхо или возврат? - PullRequest
0 голосов
/ 12 августа 2010

Я просто хотел кое-что проверить здесь - нужно ли выводить значения в PHP, чтобы получить их через (jQuery) XHR?

например

PHP :

public function processRequest() {

    //intercept AJAX requests
    if (!empty($_GET)) {

        if (isset($_GET['xhr'])) {
            if ($_GET['xhr'] == true) {
                //process AJAX

                //call relevant method
                echo json_encode(array('key' => 'value'));
                return;
            }
        }
    }

    //else proceed with regular output
    $this->render();
}

jQuery :

function doAjax(){

    $.ajax({
        url: "index.php?xhr=true",
        cache: false,
         dataType: 'json',
         success: function(data){
             console.log(data);
         }
    });
}

Этот журналобъект json в консоли Firebug с соответствующими значениями.Если я попытаюсь вернуть значение вместо эхо, я получу nada.

Ответы [ 3 ]

4 голосов
/ 12 августа 2010

Они должны быть отражены, чтобы быть в ответе, так что да, они должны быть там, чтобы jQuery их видел ... в противном случае ответ, который получает браузер, не будет иметь контента.

В качестве примечания вы можете проверить заголовок X-Requested-With: XmlHttpRequest, если все, что вам нужно, это проверить, является ли это AJAX-запросом от jQuery, он уже добавляет этот заголовок с каждым запросом , например:

if($_SERVER['HTTP_X_REQUESTED_WITH']=='XMLHttpRequest'){
0 голосов
/ 12 августа 2010

Ответ будет состоять из визуализированной страницы, поэтому, когда вы ее возвращаете, она возвращает ее в файле PHP, фактический рендер страницы никогда не видит значение, и, следовательно, jQuery также не делает.

По сути, команда jQuery AJAX увидит то, что увидит ваш браузер, если вы просмотрите источник.

0 голосов
/ 12 августа 2010

Return ничего не сделает, потому что вы не в функции, вы в отдельном файле.Return просто изящно остановит выполнение.

Вам необходимо отобразить / распечатать данные для javascript, чтобы прочитать их при выполнении http-запроса.Он работает так же, как если бы вы взяли этот URL и открыли его в браузере.

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