Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.07.2011, 17:57
Аспирант
Отправить личное сообщение для DorianLeroy Посмотреть профиль Найти все сообщения от DorianLeroy
 
Регистрация: 05.05.2010
Сообщений: 36

Аякс. Как получить данные с сервера в виде массива или 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 вытаскивать из этой строки необходимые мне данные.

Заранее спасибо за понимание.
Ответить с цитированием
  #2 (permalink)  
Старый 27.07.2011, 18:02
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Как с сервера отправляете, так они в браузер и приходят.
Ответить с цитированием
  #3 (permalink)  
Старый 27.07.2011, 18:36
Аспирант
Отправить личное сообщение для DorianLeroy Посмотреть профиль Найти все сообщения от DorianLeroy
 
Регистрация: 05.05.2010
Сообщений: 36

А как мне с сервера отправлять?
Я отправляю просто вот так:
Какието операции с данными и вывод данных которые мне нужны:
echo $image;
echo $number;
и т.д.
Ответить с цитированием
  #4 (permalink)  
Старый 27.07.2011, 19:00
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

На сервере накапливаешь данные в массив с нужными ключами, в конце отправляешь на сервер в виде json стороки:
header('Content-type: application/json');
die(json_encode(
    'image'  => $image,
    'number' => $number
));
А вот так, как у тебя сейчас, не делай лучше: если потом твой код кто-то будет поддерживать, то он вполне потом может совершить какое-нибудь ужасное преступление.
Ответить с цитированием
  #5 (permalink)  
Старый 27.07.2011, 19:07
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Правильнее так:
header('Content-type: application/json');
die(json_encode(
  array(
    'image'  => $image,
    'number' => $number
  )
));
Ответить с цитированием
  #6 (permalink)  
Старый 27.07.2011, 19:11
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

ой, точно
Ответить с цитированием
  #7 (permalink)  
Старый 28.07.2011, 11:35
Аспирант
Отправить личное сообщение для DorianLeroy Посмотреть профиль Найти все сообщения от DorianLeroy
 
Регистрация: 05.05.2010
Сообщений: 36

Спасибо!
"А вот так, как у тебя сейчас, не делай лучше: если потом твой код кто-то будет поддерживать, то он вполне потом может совершить какое-нибудь ужасное преступление." - вкратце можете объяснить почему?
Ответить с цитированием
  #8 (permalink)  
Старый 28.07.2011, 11:52
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

Потому что это дурной стиль, сразу же выдающий человека, который еще не очень опытен, или просто не очень хороший программист, или новичок, не знакомый с граммотным стилем программирования. Разве вы сами не видите, что так - не удобно, когда по всему коду разбросаны echo. Это не удобно, это потенциально багоопасно, потому что так легко что-то упустить, это тяжело поддерживается и расширяется, это загрязняет код, делая его неструктурированным куском.. кода. Понимаете? Код должен иметь четкую структуру. Даже если вы не используете нормальные подходы типа MVC, каждая строка в коде может (и должна) отвечать за свою часть работы, а не так что здесь я что-то вытянули из базы, и сразу же это послали куда-то, а потом еще сделали цикл, а потому опять отправили..
Ответить с цитированием
  #9 (permalink)  
Старый 28.07.2011, 12:06
Аспирант
Отправить личное сообщение для DorianLeroy Посмотреть профиль Найти все сообщения от DorianLeroy
 
Регистрация: 05.05.2010
Сообщений: 36

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
как передать данные из json в названия параметров shultz1988 Общие вопросы Javascript 2 20.07.2011 11:15
Как получить максимальное и минимальное допустимое число в не экспоненциальном виде? FINoM Общие вопросы Javascript 17 25.02.2011 14:48
Как получить файл с сервера AJlekceu AJAX и COMET 1 02.11.2008 13:41
передача массива с сервера subaru Общие вопросы Javascript 3 02.07.2008 19:57