Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.02.2016, 08:33
Профессор
Отправить личное сообщение для espltd Посмотреть профиль Найти все сообщения от espltd
 
Регистрация: 10.10.2012
Сообщений: 201

Проблема получения объекта JSON
добрый день всем! Подскажите пожалуйста. Есть массив из базы данных в экшене. Я его возращаю так return json_encode($order); В аякс запросе пытаюсь по человечески его получить, а выходит следуюющее.

[{}, {}, {}, {}, {}, {}]
0: {}
1: {}
2: {}
3: {}
4: {}
5: {}

Если вывести в alert-е, то получаю [Object object, object object] и т.д. Не понимаю на каком этапе теряются мои данные.

Вот сам запрос

$('.order').click(function(){
                
                var number = $('#number').text();
                
                $.ajax({
                url: '/adm/record/order/',
                dataType: 'json',
                data: "card=" + number,
                                
                success: function(html){
                    
                    var res = eval("(" + html + ")");
                    
                    alert(res);
                    
                    //$('#result').text(data);
                }
                
               });                
            });
Ответить с цитированием
  #2 (permalink)  
Старый 03.02.2016, 11:06
Профессор
Отправить личное сообщение для espltd Посмотреть профиль Найти все сообщения от espltd
 
Регистрация: 10.10.2012
Сообщений: 201

Ребят, ну кто нибудь отзовитесь. Не допираю в чем трабла
Ответить с цитированием
  #3 (permalink)  
Старый 03.02.2016, 11:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

JSON, это не объект, это формат описания данных и представляет собой строку. А вот указание этого типа данных в запросе будет означать, что по окончании запроса эта строка уже будет преобразована в объект, и в связи с тем, что в JS нет ассоциативных массивов, этот массив переданный сервером, на клиенте будет являться массивом объектов, который и описывается в JS как:

[{свойство : значение, свойство : значение, ...}, {...}, {}, {}, {}, {}]

где свойство, это ключ ассоциативного массива. Теперь осталось произвести с объектом html некие операции по извлечению этих данных в цикле. А

var res = eval("(" + html + ")");

alert(res);

выбросить, и просмотреть на клиенте содержимое объекта html можно так - console.log(html)

Последний раз редактировалось laimas, 03.02.2016 в 11:27.
Ответить с цитированием
  #4 (permalink)  
Старый 03.02.2016, 11:27
Профессор
Отправить личное сообщение для espltd Посмотреть профиль Найти все сообщения от espltd
 
Регистрация: 10.10.2012
Сообщений: 201

я раньше работал только с получением строки, а сейчас именно надо преобразование этой строки в объект. Не понимаю как мне сейчас к эти данным обратиться. Можно пример?
Ответить с цитированием
  #5 (permalink)  
Старый 03.02.2016, 11:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от espltd
а сейчас именно надо преобразование этой строки в объект.
Не надо ничего преобразовывать, jQuery уже это сделал. Далее что делать с этим объектом, это уже ваша забота.

Сообщение от espltd
Можно пример?
Можно, но нужно хотя бы писать, чего же вы хотите сделать с этими данными. Или вы, зная их структуру что получена из базы, передали их на клиента просто так, не зная что там и что с ними делать?
Ответить с цитированием
  #6 (permalink)  
Старый 03.02.2016, 11:39
Профессор
Отправить личное сообщение для espltd Посмотреть профиль Найти все сообщения от espltd
 
Регистрация: 10.10.2012
Сообщений: 201

разумеется я знаю структуру. Просто с json я ранее не работал. В пхп у меня бы получилось так:

foreach ($order as $item){
echo $item->name.'<br/>';
echo $item->lastname.'<br/>';
}

и т.д. А как сейчас их достать я не понимаю. Может дадите реально хорошую ссылку описывающую именно работу(получение данных) пошагово
Ответить с цитированием
  #7 (permalink)  
Старый 03.02.2016, 11:45
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Ну если echo $item->name, то надеюсь понятно и то, что данные из базы будут выведены последовательно в длиииииинный столбик, что именно это и требуется сделать на клиенте?
Ответить с цитированием
  #8 (permalink)  
Старый 03.02.2016, 11:50
Профессор
Отправить личное сообщение для espltd Посмотреть профиль Найти все сообщения от espltd
 
Регистрация: 10.10.2012
Сообщений: 201

Мне просто нужно отобразить данные авторизованного юзера в его кабинете и все. Сейчас я просто хочу их получить. А то Object object клиенту ни о чем не скажут
Ответить с цитированием
  #9 (permalink)  
Старый 03.02.2016, 11:56
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от espltd
Мне просто нужно отобразить данные авторизованного юзера в его кабинете и все.
Если так, то зачем же вы гребете из базы не одну запись, то есть данные одного пользователя, а кучу записей?

Если одного пользователя, то объект на клиенте должен быть примерно таким (имена свойств пишу условно):

{"name" : "значение", "birth" : "значение", etc....}

А то что вы привели, это массив объектов, то есть фактически:

[{"name" : "значение", "birth" : "значение", etc....},
{"name" : "значение", "birth" : "значение", etc....},
{"name" : "значение", "birth" : "значение", etc....},
..... etc]

Что-то не то вы делаете уже на сервере, либо не описываете свои данные так, чтобы можно было понять чего хотите.
Ответить с цитированием
  #10 (permalink)  
Старый 03.02.2016, 12:11
Профессор
Отправить личное сообщение для espltd Посмотреть профиль Найти все сообщения от espltd
 
Регистрация: 10.10.2012
Сообщений: 201

laimas. Смотрите давайте так:

Вот это я получаю на сервере.
<pre>Array
(
    [0] => app\models\LogBonus Object
        (
            [_attributes:yii\db\BaseActiveRecord:private] => Array
                (
                    [id_log_bonus] => 1913
                    [card] => 19034233
                    [operator] => 7
                    [operation] => inflow
                    [operator_cancel] => 0
                    [dat_oper] => 2012-09-26 13:20:00
                    [confirm] => 1
                    [oper] => Оплата по Заказ наряд 18930 (26.09.12) / 7079
                    [oper_summa] => 7079.00
                    [persent] => 3
                    [summ] => 212.00
                    [confirmed] => 2012-09-26 13:20:00
                    [project] => 4
                    [bad] => 0
                    [verify] => 3419
                )

            [_oldAttributes:yii\db\BaseActiveRecord:private] => Array
                (
                    [id_log_bonus] => 1913
                    [card] => 19034233
                    [operator] => 7
                    [operation] => inflow
                    [operator_cancel] => 0
                    [dat_oper] => 2012-09-26 13:20:00
                    [confirm] => 1
                    [oper] => Оплата по Заказ наряд 18930 (26.09.12) / 7079
                    [oper_summa] => 7079.00
                    [persent] => 3
                    [summ] => 212.00
                    [confirmed] => 2012-09-26 13:20:00
                    [project] => 4
                    [bad] => 0
                    [verify] => 3419
                )

            [_related:yii\db\BaseActiveRecord:private] => Array
                (
                )

            [_errors:yii\base\Model:private] => 
            [_validators:yii\base\Model:private] => 
            [_scenario:yii\base\Model:private] => default
            [_events:yii\base\Component:private] => Array
                (
                )

            [_behaviors:yii\base\Component:private] => Array
                (
                )

        )

    [1] => app\models\LogBonus Object
        (
            [_attributes:yii\db\BaseActiveRecord:private] => Array
                (
                    [id_log_bonus] => 24831
                    [card] => 19034233
                    [operator] => 7
                    [operation] => outflow
                    [operator_cancel] => 0
                    [dat_oper] => 2013-10-19 12:35:55
                    [confirm] => 1
                    [oper] => Оплата по Заказ наряд 27303 (19.10.13) / 6399
                    [oper_summa] => 210.00
                    [persent] => 0
                    [summ] => 210.00
                    [confirmed] => 2013-10-19 12:35:55
                    [project] => 4
                    [bad] => 0
                    [verify] => 
                )

            [_oldAttributes:yii\db\BaseActiveRecord:private] => Array
                (
                    [id_log_bonus] => 24831
                    [card] => 19034233
                    [operator] => 7
                    [operation] => outflow
                    [operator_cancel] => 0
                    [dat_oper] => 2013-10-19 12:35:55
                    [confirm] => 1
                    [oper] => Оплата по Заказ наряд 27303 (19.10.13) / 6399
                    [oper_summa] => 210.00
                    [persent] => 0
                    [summ] => 210.00
                    [confirmed] => 2013-10-19 12:35:55
                    [project] => 4
                    [bad] => 0
                    [verify] => 
                )

            [_related:yii\db\BaseActiveRecord:private] => Array
                (
                )

            [_errors:yii\base\Model:private] => 
            [_validators:yii\base\Model:private] => 
            [_scenario:yii\base\Model:private] => default
            [_events:yii\base\Component:private] => Array
                (
                )

            [_behaviors:yii\base\Component:private] => Array
                (
                )

        )
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сериализация форм в json Dtri jQuery 17 07.02.2017 11:42
Разбор объекта json ecSpl01t AJAX и COMET 1 11.01.2014 23:37
Не могу распарсить JSON. gorenie jQuery 3 29.11.2013 22:26
проблема парсинга json с помощью jquery frolvict jQuery 15 16.09.2011 22:35
JSON или JSONP для запросов на другой сервер? Метод GET, для длинных сообщений? Kotakota jQuery 5 23.08.2011 23:12