Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.07.2009, 07:16
Кандидат Javascript-наук
Отправить личное сообщение для JAre Посмотреть профиль Найти все сообщения от JAre
 
Регистрация: 29.06.2009
Сообщений: 111

jquery $('#id').ready
Я использую вот такую конструкцию:
$('#' + id).submit();

$('#ifrTransp').ready(function () {

     $.getJSON("http://thelongesttest.appspot.com/1.html?id=" + id + "&callback=?",

   
          function(data) {

              alert(decodeURI( data.id));

          });

});


Для передачи данных на сервер через фрейм "ifrTransp'".

function(data) {

              alert(decodeURI( data.id));

          });


В будущем должно проверять получил ли сервер данные, не было ли ошибок. То есть мне нужно создать этот запрос сразу после передачи данных через ифрейм. Но у меня такое чувство, что этот ready срабатывает раньше чем форма уходит на сервер.

Я прав?
Ответить с цитированием
  #2 (permalink)  
Старый 05.07.2009, 08:41
Кандидат Javascript-наук
Отправить личное сообщение для JAre Посмотреть профиль Найти все сообщения от JAre
 
Регистрация: 29.06.2009
Сообщений: 111

И еще это, мне ready применять к ифрейму или странице?
Ответить с цитированием
  #3 (permalink)  
Старый 06.07.2009, 18:21
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

дело в том, что ready вешает событие на document (текущий)
что это за iframe? Почему бы в нем не прописать ready?
Ответить с цитированием
  #4 (permalink)  
Старый 06.07.2009, 19:23
Кандидат Javascript-наук
Отправить личное сообщение для JAre Посмотреть профиль Найти все сообщения от JAre
 
Регистрация: 29.06.2009
Сообщений: 111

Что-то в этом духе:
<iframe name="qtroll_ifrTransp" id="qtroll_ifrTransp" width="100%" height="300"></iframe>
<form name="qtroll_question" enctype="application/x-www-form-urlencoded" method="post" action="http://thelongesttest.appspot.com/cpanel/" id='qtroll_questionFrmId' target="qtroll_ifrTransp">  <!-- {qtroll_questionFrm} -->
</form>


отсылаю так:

function qtroll_sbm(id) {
		
$('#' + id + ' > #qtroll_sbmBtn').attr('style', 'color:#000');
$('#' + id + ' > #qtroll_sbmBtn').attr('value', 'sending...');

var seed = hex_md5( new Date() );

$('#' + id + ' > #qtroll_querySeed').attr('value', seed);
	
$('#' + id).submit();

$('#qtroll_ifrTransp').ready(function () {

     $.getJSON("http://thelongesttest.appspot.com/cpanel/?id=" + encodeURI(seed) + "&callback=?",

   
          function(data) {

              alert(seed + "  " + decodeURI(data.seed));

			  
			  if ( ('["' + seed + '"]') == decodeURI(data.seed) ) { 
			  
			  $('#' + id + ' > #qtroll_sbmBtn').attr('style', 'color:#060');
			  $('#' + id + ' > #qtroll_sbmBtn').attr('value', 'ok!');
				  
				  } 
			 else {
			  $('#' + id + ' > #qtroll_sbmBtn').attr('style', 'color:#F00');
			  $('#' + id + ' > #qtroll_sbmBtn').attr('value', 'error!');
			 }

          });

});

}


Это черновой вариант.

Идея такова:

Запекаю в невидимое поле формы хеш даты. Отправляю форму через ифрейм транспорт на удаленный сервер( не тот откуда скрипт грузится) Всё это дело пакуется в бд.

Как только транзакция завершена - посылаю на тот же сервер ГЕТ запрос, который содержит тот же сиид( дату публикации формы) Если сииды совпадают - значит, по идее, всё произошло нормально.

Планирую делать хеш не времени а сериализированной формы, так логичнее...

Хелп ме! де мне утыкнуть редю
Ответить с цитированием
  #5 (permalink)  
Старый 06.07.2009, 19:54
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Цитата:
де мне утыкнуть редю
внутри iframe можно?
Ответить с цитированием
  #6 (permalink)  
Старый 06.07.2009, 20:25
Кандидат Javascript-наук
Отправить личное сообщение для JAre Посмотреть профиль Найти все сообщения от JAre
 
Регистрация: 29.06.2009
Сообщений: 111

Можно. Как это событие называется, что бы я его добавил? Раз $('#qtroll_ifrTransp').ready не то, что нужно..

А что если $('#qtroll_ifrTransp').load ? Или тоже не вариант ?

Последний раз редактировалось JAre, 06.07.2009 в 20:28.
Ответить с цитированием
  #7 (permalink)  
Старый 06.07.2009, 20:56
Кандидат Javascript-наук
Отправить личное сообщение для JAre Посмотреть профиль Найти все сообщения от JAre
 
Регистрация: 29.06.2009
Сообщений: 111

Ухты! А .load как раз то, что нужно делает. Странно, что в спеках по jquery не видел его. Видимо, потому-что он стандартный метод.
Ответить с цитированием
  #8 (permalink)  
Старый 07.07.2009, 22:33
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

не знаю, как тебе $('#qtroll_ifrTransp').load помог

а по поводу в iframe: переносишь $('#qtroll_ifrTransp').ready в iframe, а для обращения ко внешнему документу используешь top.document в качестве контекста для $

UPD: уже понял о каком load идет речь (в jQuery совпадает название функций для назначения обработчика события load и для загрузки информации через ajax)

Последний раз редактировалось x-yuri, 07.07.2009 в 22:49.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery для загрузки страницы в <div> Dr.Holerik jQuery 12 11.10.2016 17:36
Jquery - поменять местами блоки denlem jQuery 4 09.12.2010 15:00
Jquery, Dynatree и JSON antirek jQuery 6 01.09.2009 14:00
Как правильно подгрузить jQuery Siton jQuery 4 15.06.2009 08:54
подгрузка файлов через jQuery imdogma jQuery 4 05.05.2009 20:46