Страница 2 из 4

Re: Вариант возврата данных сервером

СообщениеДобавлено: 19 фев 2010, 16:43
Gennady
Вот вопрос: как можно возвращать данные локально... что бы в ...text(data) выходило только содержимое <?=$_POST;?>

Код: выделить все
<?php
header('Content-Type: text/html; charset=utf-8');
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
  if($_POST) {
    print 'Имя: ' . $_POST['name'] . ', возраст: ' . $_POST['age'];
  }
} else {
  // а если это не ajax-запрос, то выполняется что-то другое...
}
?>

Re: Вариант возврата данных сервером

СообщениеДобавлено: 19 фев 2010, 16:52
TRAHOMOTO
Иногда, когда лень использовать JSON или XML я делаю так
1. Оправляю запрос с параметрами серверу.
2. Сервер обрабатывает и выдает ответ где
Код: выделить все
echo '
<div id="serverResult" style="display:none">
           OK, ALERT или ERROR
</div>
<div id="serverMsg">
           Что нам говорит сервер
</div>
<div id="serverHidden" style="display:none">
           ...
           какой-то служебный фрагмент кода, текста и т.п.
           ...
</div>
';

Далее в функции sucess:
Код: выделить все
...
sucess: function(server){
                  $('#response').html(server);
                  var serverResult        = $('#serverResult').text();     // Тип ответа сервера
                  var serverMsg           = $('#serverMsg').text();        // Сообщение сервера
                  var serverHidden       = $('#serverHidden').html();  // То за чем мы отправили запрос на сервер

                  switch (serverResult){
                        case 'ERROR':
                                ...
                                говорим что ошибка
                                ...
                                break;

                        case 'ALERT':
                                ...
                                отработало но с предупреждением
                                ...
                                break;
                       
                        default:
                                ...
                                все прошло гладко

                  }
            }.
...

Но ИМХО это изобретание XML-велосипеда. Но работает на ура!

И не забудьте указать ожидаемый тип ответа в $.ajax и выставить заголовок перед выводом в серверном скрипте! Иначе FF вас накажет!

Re: Вариант возврата данных сервером

СообщениеДобавлено: 19 фев 2010, 17:00
TRAHOMOTO
У вас все отработало? Или сделать демку?

Re: Вариант возврата данных сервером

СообщениеДобавлено: 19 фев 2010, 17:29
Стас
TRAHOMOTO писал(а):У вас все отработало? Или сделать демку?

разбираюсь. не отказался бы в помощи от работающего примера который я выводил, но с помощью json. похоже в этом направлении надо копать.
заранее благодарен.

Re: Вариант возврата данных сервером

СообщениеДобавлено: 20 фев 2010, 03:40
TRAHOMOTO
Пожалуйста! Вот вам демка, а вот листинг серверного скрипта
Код: выделить все
<?php
   $data->result    = 'OK';
   $data->msg       = date("Y-m-d H:i:s");
   $data->hidden    = "Вот то, что мы отправили на сервер!\nА точннеe var_export ".'$_POST'."'а\n".var_export($_POST, true);

   header("Content-type: application/json;charset=utf-8");
   echo json_encode($data);
?>

Если будут затруднения, не стесняйтесь спрашивать ... только спрашивайте понятно, а мы так же расскажем)

Re: Вариант возврата данных сервером

СообщениеДобавлено: 20 фев 2010, 16:15
TRAHOMOTO
Ээй! Стас вам пригодилось? Или же что-то не понятно?

Re: Вариант возврата данных сервером

СообщениеДобавлено: 20 фев 2010, 18:52
Стас
TRAHOMOTO писал(а):Ээй! Стас вам пригодилось? Или же что-то не понятно?

TRAHOMOTO! Спасибо вам огромное, я еще не пробовал, но вариант интересен - сегодня постараюсь обкатать и вам сообщу о результатах!

Re: Вариант возврата данных сервером

СообщениеДобавлено: 20 фев 2010, 20:29
TRAHOMOTO
Давайте давайте! Если что не понятно спрашивайте ... или я или мои коллеги вам помогут, только задавайте правильно вопрос ^_^

Re: Вариант возврата данных сервером

СообщениеДобавлено: 21 фев 2010, 17:43
Стас
TRAHOMOTO, не получилось по тестить вашу схему, хотя выглядит очень заманчиво..
выскакивает ошибка parsererror и дальше ни как..
сделал дамп целиком, очень хотелось бы знать в чем ошибка.
Спасибо!

Re: Вариант возврата данных сервером

СообщениеДобавлено: 22 фев 2010, 23:55
TRAHOMOTO
Простите что так долго, очень много работы...
Итак у вас в коде нет ни единой ошибки! :!: но есть все же одна не точность (недопустимость) причем в серверном скрипте. Я вам не скажу где, но намекну в чем, а вы постарайтесь разобраться. Если не получится подскажу.
    При нажатии на ссылку, клиентский скрипт отправляет запрос серверу
    Сервер отвечает следующим кодом (это строгое предупреждение PHP). Все потому что не выполнено предписание мануала к функции header() в котором говорится следующее (это строгое предупреждение PHP). Все потому что не выполнено предписание мануала к функции МОНТАЖ СЕРВИС создано (это строгое предупреждение PHP). Все потому что не выполнено предписание мануала к функции монтажная компания Сеть
Помните, что header() обязана вызываться до отправки любого вывода: нормальными ли тэгами HTML, пустыми строками в файле или из PHP. Очень частой ошибкой является чтение кода функциями include() или require(), или другой функцией доступа к файлу, и наличие пробелов или пустых строк, которые выводятся до вызова header(). Та же проблема возникает при использовании едингого PHP/HTML-файла.

    И внимательно взгляните на свой скрипт который вы приложили
--------------------------------------------------------------
Кстати взгляните на значение переменной
Код: выделить все
public 'hidden' => string '��� ��, ��� �� ��������� �� ������!
� ������e var_export $_POST'�

А все потому, что текст сообщения в кодировке Windows-1251, а сервер возвращает кириллицу в кодировке UTF-8, но это скорее не приятно нежели фатально.