 
			
				12.07.2009, 12:26
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 12.07.2009 
					
					
					
						Сообщений: 23
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Проблема с jQuery.getJSON (видемость массивов в нутри и снаружи конструкци)
			 
			
		
		
		
		
var boxSort = new Array();
	var boxId = new Array();
	var boxName = new Array();
	var boxContent = new Array();
	var inum = 0;
		
	jQuery.getJSON("ajax.php",
    	function(data){
        jQuery.each(data, function(i,itemsss){	
			boxSort [inum] = itemsss.sort;
			boxContent [inum] = itemsss.content;
			boxName [inum] = itemsss.name;
			boxId [inum] = itemsss.id;
			inum++;
                       console.log(boxId [inum]); // тут все ОК
			if ( i == 0 ) return false;
          });
        });
console.log(boxId [0]); // дает undefined
загрузка json'a, в jQuery.getJSON массив виден boxName [0], а дальше не определено. Подскажите в чем проблема?  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось mazovski, 13.07.2009 в 15:11.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.07.2009, 13:17
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.04.2009 
					
					
					
						Сообщений: 1,263
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Потому что аякс-запрос выполняется асинхронно, и последний console.log выполяняется до выполнения callback'a на аякс. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.07.2009, 13:49
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 12.07.2009 
					
					
					
						Сообщений: 23
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от e1f
			 
		
	 | 
 
	| 
		Потому что аякс-запрос выполняется асинхронно, и последний console.log выполяняется до выполнения callback'a на аякс.
	 | 
 
	
 
 e1f  
можете подсказать решение проблемы?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.07.2009, 14:41
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.04.2009 
					
					
					
						Сообщений: 1,263
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Либо делать синхронный запрос (не особо), либо переработать саму логику своего приложения. Для чего и где Вам потом использовать boxId? Возможно, дальнейшие действия с ним можно положить в тот же callback на аякс? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.07.2009, 14:52
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 12.07.2009 
					
					
					
						Сообщений: 23
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от e1f
			 
		
	 | 
 
	| 
		Либо делать синхронный запрос (не особо), либо переработать саму логику своего приложения. Для чего и где Вам потом использовать boxId? Возможно, дальнейшие действия с ним можно положить в тот же callback на аякс?
	 | 
 
	
 
 e1f, 
На основе этих данных должны строится блоки.  
в общем попробую, спасибо  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.07.2009, 14:58
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.04.2009 
					
					
					
						Сообщений: 1,263
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Хм... Так и стройте их в callback-функции, а не за ее пределами, должно сработать    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.07.2009, 15:10
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 12.07.2009 
					
					
					
						Сообщений: 23
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от e1f
			 
		
	 | 
 
	
		Хм... Так и стройте их в callback-функции, а не за ее пределами, должно сработать  
	 | 
 
	
 
 ага    буду делать...
 e1f, 
Вопрост чисто теоретический, а возможноли из getJSON отправлять переменные к остальной странице?
 
чтобы 
 
console.log(boxId [0]); // boxId был виден )))
  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.07.2009, 16:16
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.04.2009 
					
					
					
						Сообщений: 1,263
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Он будет виден, скажем так, спустя некоторое время. То есть тогда, когда выполнится колбек, где он и опредляется. А вот когда это произойдет -- хз, зависит и от времени получения ответа от сервера. Но после завершения аякса переменная у Вас будет определена. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.07.2009, 16:19
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 12.07.2009 
					
					
					
						Сообщений: 23
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от e1f
			 
		
	 | 
 
	| 
		Он будет виден, скажем так, спустя некоторое время. То есть тогда, когда выполнится колбек, где он и опредляется. А вот когда это произойдет -- хз, зависит и от времени получения ответа от сервера. Но после завершения аякса переменная у Вас будет определена.
	 | 
 
	
 
 Грустно слышать   
но ничего не поделаешь...    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.07.2009, 16:32
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.04.2009 
					
					
					
						Сообщений: 1,263
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 А почему грустно? Все логично: хотите переменную сразу - жертвуйте асинхронностью. В принципе, механизм callback-функций вполне способен реализовать все так, чтобы переменнные использовались тогда, когда они инициализированы нужными значениями 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |