Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Аякс. Как получить данные с сервера в виде массива или json (https://javascript.ru/forum/jquery/19160-ayaks-kak-poluchit-dannye-s-servera-v-vide-massiva-ili-json.html)

DorianLeroy 27.07.2011 17:57

Аякс. Как получить данные с сервера в виде массива или json
 
Доброго времени суток!

Отправляю на сервер данные в виде json, вот так:

function inthecart(sign,image){

$.post(
"ajax_cart.php",
{s:sign,i:image},
function(data,fed) {
    alert("Data loaded - " + data + " and what id second - " + fed);	
	$("#count_poz").text('data');
}
);
	}


Сервер присылает много данных, но они приходят в data в виде строки, чтото типа такого

'image - 12.jpg price - 3344 number - 36 sign - modem'

Как мне принять в виде массива эти данные. Я бы не хотел на стороне клиента с помощью javascript вытаскивать из этой строки необходимые мне данные.

Заранее спасибо за понимание.:)

Kolyaj 27.07.2011 18:02

Как с сервера отправляете, так они в браузер и приходят.

DorianLeroy 27.07.2011 18:36

А как мне с сервера отправлять?
Я отправляю просто вот так:
Какието операции с данными и вывод данных которые мне нужны:
echo $image;
echo $number;
и т.д.

ваый 27.07.2011 19:00

На сервере накапливаешь данные в массив с нужными ключами, в конце отправляешь на сервер в виде json стороки:
header('Content-type: application/json');
die(json_encode(
    'image'  => $image,
    'number' => $number
));
А вот так, как у тебя сейчас, не делай лучше: если потом твой код кто-то будет поддерживать, то он вполне потом может совершить какое-нибудь ужасное преступление.

B@rmaley.e><e 27.07.2011 19:07

Правильнее так:
header('Content-type: application/json');
die(json_encode(
  array(
    'image'  => $image,
    'number' => $number
  )
));

ваый 27.07.2011 19:11

ой, точно :)

DorianLeroy 28.07.2011 11:35

Спасибо!
"А вот так, как у тебя сейчас, не делай лучше: если потом твой код кто-то будет поддерживать, то он вполне потом может совершить какое-нибудь ужасное преступление." - вкратце можете объяснить почему?

ваый 28.07.2011 11:52

Потому что это дурной стиль, сразу же выдающий человека, который еще не очень опытен, или просто не очень хороший программист, или новичок, не знакомый с граммотным стилем программирования. Разве вы сами не видите, что так - не удобно, когда по всему коду разбросаны echo. Это не удобно, это потенциально багоопасно, потому что так легко что-то упустить, это тяжело поддерживается и расширяется, это загрязняет код, делая его неструктурированным куском.. кода. Понимаете? Код должен иметь четкую структуру. Даже если вы не используете нормальные подходы типа MVC, каждая строка в коде может (и должна) отвечать за свою часть работы, а не так что здесь я что-то вытянули из базы, и сразу же это послали куда-то, а потом еще сделали цикл, а потому опять отправили..

DorianLeroy 28.07.2011 12:06

Это я понимаю прекрасно, сам часто копаюсь с кодом чужим, только это и учит писать структурированный, чистый код =)
Я просто думал есть какой-то конкретный баг этого метода. =)


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