php ajax success: function (msg) - получить сообщение - PullRequest
1 голос
/ 24 марта 2011

У меня есть код jquery / php, который использует ajax для вызова другой страницы.

var pall_id = $(this).attr('id');
        $.ajax({ 
           type: "POST",
           url: "do_history.php?pall_id="+pall_id,   
           success: function (msg) {
                alert (msg);

            },
            error: function (XMLHttpRequest, textStatus, errorThrown)
            {   
                alert('Error submitting request.'); 
            } 
        });

Однако что мне делать, чтобы получить значение сообщения? например если do_history.php просто:

<?php

$text="text";
return $text;

?>

не будет "текст", поэтому, когда я предупреждаю (сообщение); Я получил бы «текст», появляющийся на моем экране.

Что мне нужно сделать, чтобы вернуть строковое значение? Есть идеи?

Спасибо

Ответы [ 4 ]

1 голос
/ 25 ноября 2011

Вам необходимо проверить jQuery mannual на функцию $ .post, параметр успеха - это функция, имеющая несколько параметров. Наиболее часто используемый параметр - это msg, который выводится по URL-адресу запроса. вам нужно знать, что параметр msg является выходом URL-адреса запроса (do_history.php), если вы используете return в do_history.php, содержимое ($ text) не будет выводиться в браузер, поэтому параметр msg не будет содержать ничего. но если вы используйте echo, print и т. д., содержимое ($ text) будет выводиться в браузер, поэтому параметр msg будет содержать значение!

1 голос
/ 24 марта 2011

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

<?php

$text="text";
echo $text;

?>
1 голос
/ 24 марта 2011

Используйте echo $text; и в ваших $.ajax опциях добавьте dataType: 'text'.

Однако, лучшим решением будет использование dataType: 'json', а затем echo json_encode($text); - в этом случае $text также может быть массивом / объектом / числом, и это будет соответствующий тип в функции JavaScript .

0 голосов
/ 24 марта 2011

Вам нужно вывести текст на стороне php (print 'text'; // echo 'text')

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