Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование window.opener 
:(
    Опции темы
Ord
Дата 11.10.2007, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 14.9.2007
Где: Россия

Репутация: нет
Всего: нет



1. Столкнулся тут с такой задачей, есть форма, со следующим элементом:

Код

<select name=multi_form id=my_multi_get multiple>


2. Ниже идёт ссылка на window.open, в котором открывается другая форма с сабмит кнопкой, причём эта форма наполняется элементами используя какую-то там функцию, не важно, главное, что элементы заполнены:

Код

<select name="imena" id="test" multiple size="5" ondblclick="function1();" style="width: 200px;"></select>
<input type="button" value="отправить данные в форму" onClick="send_parent();">


Где send_parent - функция, которая отвечает за перенаправление элементов 2-й формы в первую, тоесть формы в дочернем окне, в форму в родительском окне.

Функцию send_parent я оформил следующим образом:

Код

function send_parent()
{
docmetro = document.getElementById("test");
len_sel = docmetro.options.length;
if (len_sel == 0)
{
alert("Элементы не выбраны!");
}
else
{
multi_send = getElementById("my_multi_get");
window.opener.document.multi_send="????"; 
self.close();
}
}


Вот вопрос, никак не могу понять, что надо написать туда где знаки вопросов, тоесть интересует пересылка элементов multiply формы из дочерней в родительскую.

Спасибо, заранее извеняюсь за нубский вопрос, за javascript взялся только вчера, когда возникла необходимость smile
PM MAIL WWW   Вверх
dsCode
Дата 11.10.2007, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



Ord, Вам нужно добавить выбранные значения из селекта в дочерней форме в селет, который находится в родительской? Вообще, элементы select'a находятся в его свойстве (массиве) options. Могу только направить (времени сейчас писать полный код нет). Посмотрте следующее:

1. Добавление элементов (например, через new Option(...))
2. По нажатию на кнопку пройдитесь циклом по option'ам селекта дочерней формы и добавляйте эти option'ы в селект родительской формы.
3. window.opener.document.getElementById('multi_send').options[длина_массива_options] = элемент из селекта дочерней формы; 


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
Ord
Дата 11.10.2007, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 14.9.2007
Где: Россия

Репутация: нет
Всего: нет



Ага именно и здочерней в родительскую добавить выбранные элементы в мульти списке

Спасибо, попробую что-то сделать

Это сообщение отредактировал(а) Ord - 11.10.2007, 16:16
PM MAIL WWW   Вверх
Ord
Дата 11.10.2007, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 14.9.2007
Где: Россия

Репутация: нет
Всего: нет



Попробовал так, но чего-то не выходит, у меня ощущения, что я не правильно присваиваю что-то в этом выражении:
window.opener.document.multi_send = docmetro;


Код

function send_parent()
{
docmetro = document.getElementById("test");
len_sel = docmetro.options.length;
multi_send = getElementById("my_multi_get");
if (len_sel == 0)
  {
alert("Элементы не выбраны!");
  }
else
  {
for (i = 0; i < len_sel; i++)
    {
window.opener.document.multi_send = docmetro; 
    }
self.close();
  }
}


Это сообщение отредактировал(а) Ord - 11.10.2007, 16:36
PM MAIL WWW   Вверх
SelenIT
Дата 11.10.2007, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Ord, ощущения Вас не подводят). Если window.opener.document.multi_send - это тоже select multiple, то нужно в цикле по одной добавить в него все выбранные опции, например так:
Код

    for (i = 0; docmetro.options[i];)
    {
         if (docmetro.options[i].selected) // если опция выбрана - перенести ее в селект на родительской странице
               window.opener.document.multi_send.add(docmetro.options[i]); 
         else // иначе, перейти к следующей опции
               i++;
    }



--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Ord
Дата 15.10.2007, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 14.9.2007
Где: Россия

Репутация: нет
Всего: нет



Код

function send_parent()
{
docmetro = document.getElementById("metro");
len_sel = docmetro.options.length;
parentmetro = window.opener.document.getElementById("parentmetroform");

  if (len_sel == 0)
  {
  alert("Станции метро не выбраны, выберите станции на карте или из списка двойным щелчком мышки!");
  }
  else
  {
parentmetro.options[0] = new Option('dsfdf', 1);  
//self.close();
  }
}


В общем в итоге решил провести небольшой эксперимент - написал вот так. Эксплорер выдаёт ошибку: "Отказано в доступе" - никто не знает почему?
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0738 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.