Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.04.2015, 14:01
Аспирант
Отправить личное сообщение для Влад_имир Посмотреть профиль Найти все сообщения от Влад_имир
 
Регистрация: 03.03.2015
Сообщений: 44

Вытащить данные из массива
Получил на клиенте ответ см. скриншот. 1 вопрос как мне вытащить оттуда данные
$.each(data[0], function(index, value) {
  alert(index + ': ' + value);
});

не помогло и 2-й вопрос. при поторном запросе аяксом массив , становиться в 2 раза больше, как мне его обнулить или уничтожить?
Изображения:
Тип файла: jpg Скриншот 06.04.2015 134825.jpg (9.1 Кб, 7 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 06.04.2015, 14:09
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Это не ответ, это вывод массива в удобной форме посредством print_r(). Для клиента такой вывод не годится - возвращайте клиенту JSON-данные, в крайнем случае строку с разделителем.
А в два раза больше, это что-то с логикой php-обработчика, что не известно, показывайте.
Ответить с цитированием
  #3 (permalink)  
Старый 06.04.2015, 14:17
Аспирант
Отправить личное сообщение для Влад_имир Посмотреть профиль Найти все сообщения от Влад_имир
 
Регистрация: 03.03.2015
Сообщений: 44

$data= json_encode ($otvet); на серверной стороне , $otvet - массив, в который запихано 3 строковых переменных.
на клиенте
success: function (data)
			{ 
					if (data )
						{
						alert("Пришли данные " + data);
.....

Что не так? А подручными средствами jquery этот массив не раздербанить?

Последний раз редактировалось Влад_имир, 06.04.2015 в 14:21.
Ответить с цитированием
  #4 (permalink)  
Старый 06.04.2015, 14:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Если json_encode([9176, 1234, 10]), то на клиенте тип ожидаемых данных должен быть указан как json, а в success: function (data) будет достаточно обычного цикла, например:
while(v = data.pop()) {
    alert(v)
}

Если важно получение элементов с массива с первого, тогда .shift() вместо pop(). Единственное условие в этом случае, это отсутствие в массиве значения равного 0, при другом раскладе, это не будет проблемой.

А вот "удвоение" данных при повторном запросе, так json_encode на это не влияет. При каждом запросе массив $_POST будет перезаписываться данными пришедшими с клиента, а значит либо вы что-то не то химичите с $otvet, либо клиент вам шлет такое.
Ответить с цитированием
  #5 (permalink)  
Старый 06.04.2015, 14:30
Аспирант
Отправить личное сообщение для Влад_имир Посмотреть профиль Найти все сообщения от Влад_имир
 
Регистрация: 03.03.2015
Сообщений: 44

laimas,
Действительно print_r() в обработчике стоял, убрал и ничего не идет
Ответить с цитированием
  #6 (permalink)  
Старый 06.04.2015, 14:34
Аспирант
Отправить личное сообщение для Влад_имир Посмотреть профиль Найти все сообщения от Влад_имир
 
Регистрация: 03.03.2015
Сообщений: 44

laimas,
т.е лучше $otvet сделать не массивом , а строкой и разделитель вставить точку с запятой. Тогда json_encode заработает ?
Ответить с цитированием
  #7 (permalink)  
Старый 06.04.2015, 14:37
Аспирант
Отправить личное сообщение для Влад_имир Посмотреть профиль Найти все сообщения от Влад_имир
 
Регистрация: 03.03.2015
Сообщений: 44

laimas,
У меня в обработчике генерится случайное число и до конца работы проги оно должно существовать. Вот я его и гоняю по кругу.
Ответить с цитированием
  #8 (permalink)  
Старый 06.04.2015, 14:39
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Зачем строкой? Вы отдаете их как json, на клиенте это будет массив. Не было бы у вас по каким-то причинам возможности работать с этим типом данных, можно было бы в этом случае предать и строку, получив из нее на клиенте массив.
У вас что с переданными json-данными на клиенте проблемы?

>в обработчике генерится случайное число

Если речь об одном значение, то к чему тогда массив?
Ответить с цитированием
  #9 (permalink)  
Старый 06.04.2015, 14:48
Аспирант
Отправить личное сообщение для Влад_имир Посмотреть профиль Найти все сообщения от Влад_имир
 
Регистрация: 03.03.2015
Сообщений: 44

Сообщение от laimas Посмотреть сообщение
Зачем строкой? Вы отдаете их как json, на клиенте это будет массив. Не было бы у вас по каким-то причинам возможности работать с этим типом данных, можно было бы в этом случае предать и строку, получив из нее на клиенте массив.
У вас что с переданными json-данными на клиенте проблемы?

>в обработчике генерится случайное число

Если речь об одном значение, то к чему тогда массив?
Нужно из обработчика передать 3 числа, одно из них случайно сгенерированное, я и подумать не мог, что геморр такой будет. Просто закинул их в массив.
Ответить с цитированием
  #10 (permalink)  
Старый 06.04.2015, 14:51
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Если три числа, то массив. Геморрой... а с чем именно? В чем проблема то?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вытащить данные из Flash flyte Javascript под браузер 0 08.10.2014 18:38
Вытащить данные в алерт maximus2011 jQuery 5 22.08.2014 16:15
Удалить данные с массива jeka123 Javascript под браузер 7 09.04.2014 16:42
Как достать данные из JSON массива? Dimaz jQuery 15 27.11.2012 21:58
Помогите вытащить из таблицы данные... MD6 Общие вопросы Javascript 1 07.10.2008 13:03