Ajax и вывод результата обработки!
1.
fhgdfhdfhdf (19.09.2012 / 11:26)
Я методом
ajax отправляю данные на
suyda.php там у меня они обрабатываются, проходят много проверок, и если что то не прошли то выдается текст об ошибке, но так как я отправляю его
ajax(om) естественно страница обработки не загружается и ошибки не видны... как их можно от дуда вытащить?
2.
Артур (19.09.2012 / 17:06)
Это ты думаешь что не загружается, а на деле все там загружается )
Если аяксиш, то не сметь отдавать из пыха HTML страницы!
Посмотри responseText и поймешь все
3.
ramzes (19.09.2012 / 17:14)
Почему не сметь?
4.
Артур (19.09.2012 / 17:16)
Потому что это мерзко!
5.
ramzes (19.09.2012 / 19:08)
А доводы?
мне регче сверстать в пхп чем js и всю эту верстку держать в js файле пожирая трафик
6.
Артур (19.09.2012 / 19:18)
А мне легче один раз подгрузить жс файл с версткой, чем десять раз грузить ее с сервера
Добавлено через 01:05 сек.
Ты так сказал, как будто при формировании ее пыхом ты трафик не ешь )
7.
ramzes (19.09.2012 / 19:20)
Ну это же дело вкуса
8.
Артур (19.09.2012 / 19:27)
Какого вкуса? Ты больше трафика жжешь передавая разметку нежели формируя ее на стороне клиента, и нагрузки меньше на сервер.
9.
ramzes (19.09.2012 / 19:30)
8.
Башка, у тебя скрипт подгружается и элементы разметки
разница +/- не велика.
Я не имею ввиду обновление чистых данных, их я тоже скриптом разбрасываю по блокам, а например попап динамичный мне проще рисовать пыхом, менее громоздко выходит (у меня)
10.
Артур (19.09.2012 / 20:26)
попап?
11.
ramzes (19.09.2012 / 20:47)
Ну да, например окно авторизации, привата, меню, я рисую в одном пхп файле, ну и запрос практически одтнаков. Минимум js, это конечно все от привычки оперировать пыхом а не js. Писал прогу на js соответственно все рисовал им же, как то муторно, для меня. Выгоды в принципе не увидел, ну меньше трафика в ответе, зато js обьемнее. Х.з. может у меня подход не верный
12.
Артур (19.09.2012 / 21:43)
Подход не верный
13.
fhgdfhdfhdf (19.09.2012 / 22:42)
%) что на счет моего вопроса конкретней?)
14.
Дмитрий (20.09.2012 / 13:45)
1.
6680, отдавай страницу в формате json, а на стороне клиента формируй разметку из того, что отдал скрипт в suyda.php
Например структура файла suyda.php:
<?
$result['status'] = 'Error';
$result['status_title'] = 'Ошибка';
$result['content'] = '';
if (если есть авторизовация){
if (если есть права доступа){
// что-то там сделать
$result['status'] = 'OK';
$result['status_title'] = 'Действие выполнено успешно';
$result['content'] = 'Контент, который хочешь отдать';
} else {
$result['status_title'] = 'У вас не достаточно прав доступа';
}
} else {
$result['status_title'] = 'Вы не авторизованы';
}
exit( json_encode($result) );
А на стороне клиента на запрос вешай обработчик, все данные, которые пришли из файла suyda.php обрабатывай как json, проверяй значение status в пришедшем массиве и от него отталкивайся.
Например так:
<?
var param = {
email: 'email@site.ru',
password: 'password',
remember: true
};
Ajax.post('/login', param, function(request){
var data = parseJSON(request.responseText);
if (data.status == 'OK') {
alert('Действие выполнено успешно.\n Результат: '+data.status_title+'.\nЗапрашиваемый контент: '+data.content);
} else {
alert('Ошибка: '+data.status_title);
}
});
Естественно, объект Ajax и ф-я parseJSON самописные и я их привел только для примера. Собственно, курить надо в эту сторону.
15.
Артур (20.09.2012 / 14:00)
14.
dima.london, лучше использовать уже объезженную технологию с заголовками:
$answer = new stdClass;
$answer->header = ['error' => 0, 'type' => 'xml'];
$answer->body = '<data>...</data>'
Ответ конечно может быть в любом формате, а на стороне клиента проверяем титлы.
16.
fhgdfhdfhdf (20.09.2012 / 14:06)
ух как все не просто) лан) спасибо) будем разбираться =)
17.
Алексей (20.09.2012 / 14:21)
Башка (20 Сентября 2012 / 14:00)
14. dima.london, лучше использовать уже объезженную технологию с заголовками:
$answer = new stdClass;
$answer->header = ['error' => 0, 'type' => 'xml'];
$answer->body = '<data>...</data>'
Ответ конечно может быть в любом формате, а на стороне клиента проверяем титлы.
тогда получается кошерно писать результат ответа (xml) в виде строки?
лучше тогда хранить все заголовки, тело сообщения в массиве а потом уже только билдить в json, xml (array->json, array->xml);
18.
Артур (21.09.2012 / 00:54)
Не понял вопроса.
XML в любом случае пишется в виде строки ))) А потом полученный объект с заголовком и телом преобразуется в соотвествии с жсоном
URL:
https://visavi.net/topics/34496