Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.08.2015, 12:50
Новичок на форуме
Отправить личное сообщение для asvlogan Посмотреть профиль Найти все сообщения от asvlogan
 
Регистрация: 06.07.2013
Сообщений: 6

Передача значения из функции
var answer;
$.ajax({
type:"POST",
url:"data/answer.txt",
success: function(data){
answer=data.split('\n');
//alert(answer[1]);
}
});
alert(answer[1]);

Alert внутри функции работает, а снаружи - Uncaught TypeError: Cannot read property '1' of undefined

Как сделать чтоб и снаружи работало?
Ответить с цитированием
  #2 (permalink)  
Старый 12.08.2015, 13:58
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Никак. Асинхронный запрос на то и асинхронный.
Вот тебе прямой идиотский вариант решения твоей "проблемы":
var result = null;
$.ajax({ 
 type:"POST",
 url:"data/answer.txt",
 success: function(data){
  result =data.split('\n');
 }
});
var interval = setInterval(function(){
 if(result) {
   clearInterval(interval);
   alert(result);
 }
},100)
Ответить с цитированием
  #3 (permalink)  
Старый 12.08.2015, 14:31
Новичок на форуме
Отправить личное сообщение для asvlogan Посмотреть профиль Найти все сообщения от asvlogan
 
Регистрация: 06.07.2013
Сообщений: 6

Значит придется создать div и в него выводить
success: function(data){
var array= data.split('\n');
for(var i=0;i<array.length;i++)
$('div').append("<p>"+array[i]+"</p>");
}
а затем через css подгонять этот div под вид модульного окна.

Опять велосипед самому писать.
Ответить с цитированием
  #4 (permalink)  
Старый 13.08.2015, 09:15
Новичок на форуме
Отправить личное сообщение для asvlogan Посмотреть профиль Найти все сообщения от asvlogan
 
Регистрация: 06.07.2013
Сообщений: 6

Решил задачу:
setTimeout(function(){
var region = $('#dist :checked').text();
var massiv = $('#massiv :checked').text();
var street= $('#autocomplete').val();
var house= $('input[name=house]').val();
if($('input[name=cond]').prop('checked')){
var res1= answer(0)
}
if($('input[name=furUn]').prop('checked')){
var res1= answer(1)
}
if($('input[name=animal]').prop('checked')){
var res2= answer(2)
}

function answer(num){
$.ajax({
type:"POST",
url:"data/answer.txt",
success: function(data){
answer=data.split('\n');
if(isNaN(street)) street='';
alert(
region+
massiv+
street+
house+
answer[num]
);
}
});
}
},4000);
});
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача аргументом функции функцию Brainsss Общие вопросы Javascript 20 17.11.2014 16:12
передача функции с параметрами в функцию oli Общие вопросы Javascript 3 09.08.2012 13:52
Передача значения из функции в функцию wine-time Общие вопросы Javascript 4 18.09.2011 17:39
Превращение значения обьекта в название функции. alexandre Общие вопросы Javascript 4 16.02.2011 01:04
Возвращение значения из функции dba Events/DOM/Window 21 06.10.2009 01:33