Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.06.2012, 17:31
Аватар для Махач
Интересующийся
Отправить личное сообщение для Махач Посмотреть профиль Найти все сообщения от Махач
 
Регистрация: 24.04.2012
Сообщений: 19

$.get("name.txt, function(data1){})
Доброго времени суток!

Написал тут:
frame = new RegExp("" + codec + vendor + scene + "+([0-9]+,?[0-9]+)");
$.get("name.txt", function(data1){
			var resultfr = data1.match(frame);
			if (resultfr == null) {
				$("div #kadr span").text("Фиг");
			}
			else 
			{
				$("div #kadr span").text(resultfr[1]);
			};
		});
Как теперь вывести resultfr[1], чтобы работать можно было с ним вне этой функции.
Ответить с цитированием
  #2 (permalink)  
Старый 14.06.2012, 18:37
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Держите косячок - http://javascript.ru/forum/174893-post67.html
Осторожно! Может вызвать головную боль.


ЗЫ до сих пор не работает внутреннее линкование.

Последний раз редактировалось melky, 14.06.2012 в 18:40.
Ответить с цитированием
  #3 (permalink)  
Старый 14.06.2012, 19:36
Аватар для Махач
Интересующийся
Отправить личное сообщение для Махач Посмотреть профиль Найти все сообщения от Махач
 
Регистрация: 24.04.2012
Сообщений: 19

Под конец дня, я что-то плохо соображаю, к тому же только начал изучасть JS.

То, что я написал отрабатывает корректно.
У меня есть серия select'ов, пользаватель выбирает нужные ему значения.
Например он выбрал значения в трёх селектах, js соответсвенно отловил изменения значений (codec , vendor , scene). В файле name.txt есть строки состоящие из "codec + vendor + scene + [некий параметр]". В <div> я вывожу именно этот параметр (динамически). Всё работает.

У меня 3 файла txt, по которым проходит поиск разных совпадений, тоесть:
1) codec + vendor + scene + [некий параметр1] поиск в name1.txt
2) sect + stage + [некий параметр2] поиск в name2.txt
3) res + svd + [некий параметр3] поиск в name3.txt

Нужно связать [некий параметр1] [некий параметр2] [некий параметр3] в одной формуле и вывести результат в другой div.
var a = "глобальная", b = "тоже"
frame = new RegExp("" + codec + vendor + scene + "+([0-9]+,?[0-9]+)");
$.get("name1.txt", function(data1){
			var resultfr = data1.match(frame);
			$("div #kadr span").text(resultfr[1]);
			a = resultfr[1];
		});
frame2 = new RegExp("" +  sect + stage + "+([0-9])");
$.get("name2.txt", function(data2){
			var resultre = data2.match(frame2);
			$("div #pot span").text(resultre[1]);
			b = resultre[1];
		});
var itog = a + b;

Не работает itog, а вот в дивы всё прекрасно пишется. (

Последний раз редактировалось Махач, 14.06.2012 в 19:46.
Ответить с цитированием
  #4 (permalink)  
Старый 14.06.2012, 22:16
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Ещё раз перечитайте мой пост в FAQ.

Вкратце. Код, использующий результаты запроса :
Сообщение от Махач
var itog = a + b;
Должен быть заключен в функцию, которая должна исполняться после завершения запросов.
Ответить с цитированием
  #5 (permalink)  
Старый 14.06.2012, 23:40
Аватар для Махач
Интересующийся
Отправить личное сообщение для Махач Посмотреть профиль Найти все сообщения от Махач
 
Регистрация: 24.04.2012
Сообщений: 19

Постараюсь осознать )
Ответить с цитированием
  #6 (permalink)  
Старый 15.06.2012, 18:49
Аватар для Махач
Интересующийся
Отправить личное сообщение для Махач Посмотреть профиль Найти все сообщения от Махач
 
Регистрация: 24.04.2012
Сообщений: 19

Подскажите пожалуйста, а и b - undefined. Разве не должен ли он поменять значения a и b?
frame = new RegExp("" + codec + vendor + scene + "+([0-9]+,?[0-9]+)");
resolution = new RegExp("" + res + "+\\s+([0-9]+,?([0-9]+)?)+\\s");
		$.ajax({
				url: 'frame.txt',
				method: 'GET',
				success: function(data){
					handle1(data);
				}});
		$.ajax({
				url: 'resolution.txt',
				method: 'GET',
				success: function(data){
					handle2(data);
				}});
		var a;
		var handle1 = function(data){
			var resultfr = data.match(frame);
			if (resultfr == null) { $("div #kadr span").text("Фиг"); }
			else { $("div #kadr span").text(resultfr[1]); };
			a = resultfr[1];
		};
		var b;
		var handle2 = function(data){
			var resultre = data.match(resolution);
			if (resultre == null) { $("div #resollution span").text("Фиг"); }
			else { $("div #resollution span").text(resultre[1]); };
			b = resultre[1];
		};
		$("div #mas").text("КАДР: "+a+" РАЗРЕШЕНИЕ: "+b);
Ответить с цитированием
  #7 (permalink)  
Старый 15.06.2012, 18:57
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

те же яйца, только сбоку. значение устанавливается после завершения запроса, а вы его используете сразу, до того, как они пришли.

используйте Deferred
Ответить с цитированием
  #8 (permalink)  
Старый 18.06.2012, 11:21
Аватар для Махач
Интересующийся
Отправить личное сообщение для Махач Посмотреть профиль Найти все сообщения от Махач
 
Регистрация: 24.04.2012
Сообщений: 19

А так правильно? Отрабатывает корректно.
frame = new RegExp("" + codec + vendor + scene + "+([0-9]+,?[0-9]+)");
		resolution = new RegExp("" + res + "+\\s+([0-9]+,?([0-9]+)?)+\\s");
		
		$.when( $.ajax("frame.txt"), $.ajax("resolution.txt")).done(function(frameaj, resaj){
			var frametext = frameaj[2];
			var resultfr = frametext.responseText.match(frame);
			if (resultfr == null) { $("div #kadr span").text("Фиг"); }
			else { $("div #kadr span").text(resultfr[1]); };
			var restext = resaj[2];
			var resultre = restext.responseText.match(resolution);
			if (resultre == null) { $("div #resollution span").text("Фиг"); }
			else { $("div #resollution span").text(resultre[1]); };
			$("div #mas").text("КАДР: "+resultfr[1]+" РАЗРЕШЕНИЕ: "+resultre[1]);
   			} );
Ответить с цитированием
  #9 (permalink)  
Старый 18.06.2012, 11:27
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

да, это самое оно.
Ответить с цитированием
  #10 (permalink)  
Старый 18.06.2012, 11:32
Аватар для Махач
Интересующийся
Отправить личное сообщение для Махач Посмотреть профиль Найти все сообщения от Махач
 
Регистрация: 24.04.2012
Сообщений: 19

Спасибо большое.
Ответить с цитированием
Ответ



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

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