Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не выводится переменная (https://javascript.ru/forum/misc/51277-ne-vyvoditsya-peremennaya.html)

light 31.10.2014 11:29

Не выводится переменная
 
<script>
	$(".loads").on("click", function(){  
		$.ajax({  
			type: "POST",  
			url: "js/addImgbig.php",  
			success: function(newImg){   
				arrayId = newImg.id.split(",");  		  
				for (var i = 0; i < arrayId.length; i++) {	

					$.ajax({  
						type: "POST",   					
						data: "oneId="+arrayId[i],
						url: "js/comentshow.php",  
						success: function(comments){ 
							console.log("test1", test);  
							var	 test = comments.id;
						}  					
					});	  						
							console.log("test2", test); 
				}
			}  					
		});		
	});
</script>


Есть два ajax запроса. Второй вложенный в цикле первого.
Подскажите пожалуйста как мне вывести переменную из второго ajax в первый?
test1 - работает, test2 - нет.

Erolast 31.10.2014 11:32

Запрос выполняется асинхронно. Браузер не ждет ответа от сервера, он сразу продолжает выполнение кода.

light 31.10.2014 11:39

Erolast,
Т.е. я не смогу получить comments.id в запросе ниже?

tsigel 31.10.2014 12:32

<script>
	$(".loads").on("click", function(){  
		$.ajax({  
			type: "POST",  
			url: "js/addImgbig.php",  
			success: function(newImg){   
				arrayId = newImg.id.split(",");  		  
				for (var i = 0; i < arrayId.length; i++) {	

					$.ajax({  
						type: "POST",   					
						data: "oneId="+arrayId[i],
						url: "js/comentshow.php",  
						success: function(comments){ 
							console.log("test1", test);  
							var	 test = comments.id;
                            console.log("test2", test); 
						}  					
					});	  						
							
				}
			}  					
		});		
	});
</script>

Erolast 31.10.2014 12:52

Можно еще выполнять запрос синхронно:
$.ajax({
  async: false
});

Но при этом заблокируются любые действия со страницей на время выполнения запроса. Использовать такой способ приемлимо только на этапе инициализации, и то не всегда.


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