Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   $.ajax проблема, не возвращает json (https://javascript.ru/forum/jquery/9339-%24-ajax-problema-ne-vozvrashhaet-json.html)

KaizZzer 11.05.2010 19:08

$.ajax проблема, не возвращает json
 
есть такая функция

function ajaxload(){
		$.ajax({ 
	type: "POST",
	url: "corner.php", 
	data: {color: colorv, radius: radiusv,type: typev, format: formatv},
	dateType: 'json', 
	success: function(data){
		alert(data.ru);
		}});
		};


она отправляет скрипт на сервер, там генерируются картинки и возвращается массив с url на них в таком виде

//Converting -- Saving
if($_REQUEST['type']='jpg'){
ImageJpeg($img_lu,"dir".$id."/im_lu.png");
ImageJpeg($img_ru,"dir".$id."/im_ru.png");
ImageJpeg($img_rd,"dir".$id."/im_rd.png");
ImageJpeg($img_ld,"dir".$id."/im_ld.png");
} elseif ($_REQUEST['type']='png') {
ImagePng($img_lu,"dir".$id."/im_lu.png");
ImagePng($img_ru,"dir".$id."/im_ru.png");
ImagePng($img_rd,"dir".$id."/im_rd.png");
ImagePng($img_ld,"dir".$id."/im_ld.png");
}


//Encoding to JSON
$json=array(
	'lu' => "dir".$id."/im_lu.png",
	'ru' => "dir".$id."/im_ru.png",
	'rd' => "dir".$id."/im_rd.png",
	'ld' => "dir".$id."/im_ld.png",
);
$json=json_encode($json);


//Returning
echo $json;


Проблема в том, что функция onSuccess не хочет ничего выводить.
подскажите, как ее решить?

UPD:
Вообще, не очень понятен механизм "отдачи" переменных сервером клиенту.
в каком виде ее надо отдавать? какой функцией (echo/return/еще чтото)?
Буду признателен за объяснения, либо за толковый линк

Gvozd 11.05.2010 19:18

фаербагом смотрите что приходит

KaizZzer 11.05.2010 23:18

посмотрев, обнаружил, что запрос с нужными данными идет, только вот ответные данные как то не приходят.
так каквсе таки надо "отдавать" json-массив клиенту?

Gvozd 11.05.2010 23:27

что значит не приходят?
выставьте проверку ошибок
вставьте вывод какого-то текста перед и после вывода JSON-а , для проверки своего серверного скрипта
нам что за вас, отладить ваш скрипт, по фотографии?
как ребенок, ей богу

KaizZzer 12.05.2010 16:38

образно я и есть ребенок, только в программировании.

вот в этой функции выводится алерт с текстом "undefined", тоесть переменная не определена. Из этого я сделал вывод, что данные с сервера поступают в неправильном виде, либо я их неправильно обрабатываю. Вот с этим я и прошу помочь - как правильно отправить json с сервера (тоесть какой функцией), а также как ее обрабатывать у клиента (во всех примерах, которые я видел, с json работают именно так, как написано у меня в скрипте) :
success: function(data){
        alert(data.ru);
        }

Gvozd 12.05.2010 17:40

вы что тугодоходящий?
наверно да, так как вы видите только замечания по поводу ребенка, и напрочь игнорите технические аспекты моих постов
когда внимательно прочтете, и сделаете то, что я сказал, вот тогда и поговорим
в общем случае ваш код рабочий
почему он не рабочий у вас, я не телепат, чтобы по фотографии говорить
тысячи причин может быть

KaizZzer 12.05.2010 17:57

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

кстати, отладил.
приходит json вида
{
	"lu"	 :	 "dir26\/im_lu.png",
	"ru"	 :	 "dir26\/im_ru.png",
	"rd"	 :	 "dir26\/im_rd.png",
	"ld"   :	 "dir26\/im_ld.png"
}


как мне обратить к отдельному куску?
data.lu не работает, data['lu'] тоже

mosquito 12.05.2010 18:03

>я просто аццко тугодоходящий,
думаю боольшинство согласится)

зачем постить что то если понятно что ошибка где то у тебя, и никто другой ее за тебя не найдет по кусках кода..

>data.lu не работает
а должно =\

Gvozd 12.05.2010 18:25

Цитата:

Сообщение от KaizZzer
я просто аццко тугодоходящий, и повторять мне надо по семнадцать раз. и то не факт, что дойду.

тогда нанимайте себе репетитора, и не сношайте мозги нормальным людям.
Цитата:

Сообщение от KaizZzer
data.lu не работает, data['lu'] тоже

должно пахать
выведите data в консоль фаербага
Цитата:

Сообщение от KaizZzer
приходит json вида

быть такого не может
насколько я помню json_encode не форматирует так

KaizZzer 12.05.2010 18:50

да, приходит строка
{"lu":"dir26\/im_lu.png","ru":"dir26\/im_ru.png","rd":"dir26\/im_rd.png","ld":"dir26\/im_ld.png"}

может ее как то в json надо конвертировать в самом js?
ведь это просто текст, выведеный через echo. или скрипт должен понять сам, что это json?


Часовой пояс GMT +3, время: 19:04.