Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как вывести json на экран? (https://javascript.ru/forum/jquery/15041-kak-vyvesti-json-na-ehkran.html)

muravey 10.02.2011 19:07

Как вывести 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)-выводит пустое окно. Почему так?
:help:

muravey 10.02.2011 19:43

alert(1) - не выводится, что может быть такое с функцией each()?

muravey 10.02.2011 19:43

:cray:

SkyLight 10.02.2011 21:34

1. У вас вообще success отрабатывает? Может запрос не прошел, вы ждете success, а он дает error
2. если да, то смотрели ли, чему равно data_success?

muravey 11.02.2011 09:01

Вложений: 1
Цитата:

Сообщение от SkyLight (Сообщение 91917)
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) - срабатывает
Вложение 680

muravey 11.02.2011 09:15

Вложений: 1
По такому же алгоритму вывожу новости все работает
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);
                    }              
                }

Вложение 681

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

muravey 11.02.2011 11:11

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

var content = data_success.user;


то alert(content) - undefined

ЧТО НЕ ТАК!

SkyLight 11.02.2011 14:06

У вас на первой картинке в результате присутствует массив test, состоящий из объектов с полями id и name. А проходить вы пытаетесь по user, которого там просто нет.

muravey 11.02.2011 16:30

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


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