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)
А доводы?smile мне регче сверстать в пхп чем js и всю эту верстку держать в js файле пожирая трафик

6. Артур (19.09.2012 / 19:18)
А мне легче один раз подгрузить жс файл с версткой, чем десять раз грузить ее с сервера

Добавлено через 01:05 сек.
Ты так сказал, как будто при формировании ее пыхом ты трафик не ешь )

7. ramzes (19.09.2012 / 19:20)
Ну это же дело вкусаsmile

8. Артур (19.09.2012 / 19:27)
Какого вкуса? Ты больше трафика жжешь передавая разметку нежели формируя ее на стороне клиента, и нагрузки меньше на сервер.

9. ramzes (19.09.2012 / 19:30)
8. Башка, у тебя скрипт подгружается и элементы разметкиsmile разница +/- не велика.
Я не имею ввиду обновление чистых данных, их я тоже скриптом разбрасываю по блокам, а например попап динамичный мне проще рисовать пыхом, менее громоздко выходит (у меня)

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