Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.02.2011, 20:07
Аватар для muravey
Интересующийся
Отправить личное сообщение для muravey Посмотреть профиль Найти все сообщения от muravey
 
Регистрация: 20.01.2011
Сообщений: 22

Как вывести json на экран?
Доброго всем времени суток!

JS
success: function(data_success)
                                    {  
                                        var content = '';
                                        
                        				$(data_success.user).each(
                        				function()
                        				{
                        				    alert(1);
                        					content += '<div>' 
                                                        + '<p><b>' + $(this).attr('id_position') + ' | ' + $(this).attr('name') + '</b></p>'
                                                    + '</div>';
                        				});
                                                                                
                        				alert(content);
                        				$('#dialog_authorization').html(content);
                                        $('#dialog_authorization').parent().find('.ui-dialog-buttonpane').hide();//убрать кнопку
                                         
                                    }


PHP
$cook[] = array('id_position'=>$user['id_position'],
                                        'name'=>$user['name']);
                         $cook[] = array('id_position'=>$user['id_position'],
                                        'name'=>$user['name']);
...

$cookie = array('user'=>$cook);
     
     //echo $result;
     print json_encode(convert('cp1251', 'utf-8', $cookie));


сервер возвращает json, но alert(content)-выводит пустое окно. Почему так?
Ответить с цитированием
  #2 (permalink)  
Старый 10.02.2011, 20:43
Аватар для muravey
Интересующийся
Отправить личное сообщение для muravey Посмотреть профиль Найти все сообщения от muravey
 
Регистрация: 20.01.2011
Сообщений: 22

alert(1) - не выводится, что может быть такое с функцией each()?
Ответить с цитированием
  #3 (permalink)  
Старый 10.02.2011, 20:43
Аватар для muravey
Интересующийся
Отправить личное сообщение для muravey Посмотреть профиль Найти все сообщения от muravey
 
Регистрация: 20.01.2011
Сообщений: 22

Ответить с цитированием
  #4 (permalink)  
Старый 10.02.2011, 22:34
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

1. У вас вообще success отрабатывает? Может запрос не прошел, вы ждете success, а он дает error
2. если да, то смотрели ли, чему равно data_success?
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #5 (permalink)  
Старый 11.02.2011, 10:01
Аватар для muravey
Интересующийся
Отправить личное сообщение для muravey Посмотреть профиль Найти все сообщения от muravey
 
Регистрация: 20.01.2011
Сообщений: 22

Сообщение от SkyLight Посмотреть сообщение
1. У вас вообще success отрабатывает? Может запрос не прошел, вы ждете success, а он дает error
2. если да, то смотрели ли, чему равно data_success?
Если я делаю так

success: function(data_success)
                                    {                                   
                                        var content = data_success;
                                                                                
                        				/*$(data_success.user).each(
				                        function()
                        				{
                        				    alert(1);
                        					content += '<div>' 
                                                        + '<p><b>' + $(this).attr('id_position') + ' | ' + $(this).attr('name') + '</b></p>'
                                                    + '</div>';
                        				});*/
                                        
                        				alert(content);
                        				$('#dialog_authorization').html(content);
                                        $('#dialog_authorization').parent().find('.ui-dialog-buttonpane').hide();//убрать кнопку
                                        //window.location.reload(true); 
                                        // Редирект после 3 сек.
                                        //setTimeout('go_to_private_page()', 3000);          
                                    }


alert(content) - срабатывает
json.jpg
Ответить с цитированием
  #6 (permalink)  
Старый 11.02.2011, 10:15
Аватар для muravey
Интересующийся
Отправить личное сообщение для muravey Посмотреть профиль Найти все сообщения от muravey
 
Регистрация: 20.01.2011
Сообщений: 22

По такому же алгоритму вывожу новости все работает
success: function(result)
                {  
                    //alert('!!!');
                    if (result.type == 'error')
        			{
        				alert('error');
        				return(false);
                    }
                    else
                    {
        				var content = '';
        				$(result.news).each(
        				function()
        				{
        					content += '<div>' 
                                        + '<p><b>' + $(this).attr('putdate_format') + ' | ' + $(this).attr('name') + '</b></p>' 
                                        + '<p>' + $(this).attr('urlpict') + $(this).attr('body') + '</p>'
                                        + '<p>' + $(this).attr('url') + '</p>'
                                    + '</div>';
        				});
        				//alert(content);
        				$('#dialog_news_content').html(content);
                    }              
                }

json1.jpg

Только недавно изучаю javascript, использую в проекте jQuery может что с библиотекой. почему то не срабатывает each().

Последний раз редактировалось muravey, 11.02.2011 в 10:21.
Ответить с цитированием
  #7 (permalink)  
Старый 11.02.2011, 12:11
Аватар для muravey
Интересующийся
Отправить личное сообщение для muravey Посмотреть профиль Найти все сообщения от muravey
 
Регистрация: 20.01.2011
Сообщений: 22

Если делаю так

var content = data_success.user;


то alert(content) - undefined

ЧТО НЕ ТАК!
Ответить с цитированием
  #8 (permalink)  
Старый 11.02.2011, 15:06
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

У вас на первой картинке в результате присутствует массив test, состоящий из объектов с полями id и name. А проходить вы пытаетесь по user, которого там просто нет.
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #9 (permalink)  
Старый 11.02.2011, 17:30
Аватар для muravey
Интересующийся
Отправить личное сообщение для muravey Посмотреть профиль Найти все сообщения от muravey
 
Регистрация: 20.01.2011
Сообщений: 22

Это менял название полей, чтобы удостовериться, что JSON создается.
Я уже решил проблему. Спасибо за поддержку.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 21:24
Как вывести содержимое PHP файла с помощью JS? pavdin Серверные языки и технологии 6 22.12.2010 14:16
Как JS сообщить о JSON? mcpro jQuery 2 16.12.2009 15:27
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
Как вывести на экран значение функции SELECT MAX(id) Владдд Серверные языки и технологии 3 25.01.2009 16:07