Форум сетевых администраторов
Показаны 25 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- Java/Java Scripts (http://netadmin.ws/forum/forumdisplay.php?forumid=9)
-- Передача данных из одного окна в другое (http://netadmin.ws/forum/showthread.php?threadid=6025)


Помещено polo 11-07-2003 в 01:15:

Передача данных из одного окна в другое

Есть форма, в форме есть ссылка на открытие нового окна откуда из другой формы выбираются опции. Как можно передать все эти данные в форму основного окна. Может кто встречал пример?

__________________
Всегда есть решение.


Помещено RaZEr 11-07-2003 в 01:46:

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

__________________
The time was broken ...


Помещено Viktor 11-07-2003 в 09:33:

Держи. Думаю разберешься.

__________________
Тест - проверка верности!


Помещено polo 11-07-2003 в 12:20:

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

polo добавил 11-07-2003 в 12:29:01:
Viktor спасибо огромное, думаю именно то что нужно.

__________________
Всегда есть решение.


Помещено RaZEr 11-07-2003 в 12:30:

Ты разобрался в том что написал Viktor, или нет ?

__________________
The time was broken ...


Помещено polo 11-07-2003 в 12:37:

Еще вопрос: Открывающееся окно будет содержать множество чекбоксов, на бызе выбранных чекбоксов нужно сделать массив и передать все скрытыми полями в основную форму, далее при закрытии и открытии окна с чекбоксами нужно чтобы теже чекбоксы были выбраны. Как такое можно сделать при помощи яваскрипт?

__________________
Всегда есть решение.


Помещено RaZEr 11-07-2003 в 12:52:

Я думаю, что тебе не стоит заморачивться с созданием input-type-hidden а просто сделать в основной форме div который невиден (position: absolute или visibility: hidden) и при помощи DOM просто переписать всю часть с чекбоксами из открытого окна в основное. Переписать всмысле element.innerHtml. Если непонятно, у тебя есть сажем <div id=mydiv>чекбоксы</div>, а в открытом окне есть такой же див, но видимый, скажем с id mydiv2, так вот ты можешь сделать например:
opener.document.getElementById('mydiv').innerHTML = document.getElementById('mydiv2').innerHTML;

__________________
The time was broken ...


Помещено Viktor 12-07-2003 в 11:54:

Попробуй это...

__________________
Тест - проверка верности!


Помещено RaZEr 12-07-2003 в 14:27:

Оригинально, но есть пара минусов:
- Только для чекбоксов
- После отправки прийдется разбирать строку вида "10101..."
- При больших объемах перебор элементов формы будет тормозить.

__________________
The time was broken ...


Помещено polo 12-07-2003 в 14:49:

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

__________________
Всегда есть решение.


Помещено RaZEr 12-07-2003 в 16:14:

А мой вариант тоже не подходит ?

__________________
The time was broken ...


Помещено polo 12-07-2003 в 19:50:

RaZEr нужно будет попробовать, я еще не начал реализовывать, так предварительно спросил, как сделаю сообщу результаты, хотя я все больше и больше думаю сделать все это на пхп и не морочить себе голову.

__________________
Всегда есть решение.


Помещено RaZEr 12-07-2003 в 20:08:

Дополнительные формы нужны когда есть необходимость сделать параллельный запрос, например когда в форме нужно выбрать иконку (для чего-либо) из доступных на сервере. При этом интегрировать список иконок в форму практически невозможно (постраничный вывод иконок, компактность поля), а делать несколько шагов сложно, и как правило неприемлемо ... один из шагов может использоваться из разных мест сайта ... тот же выбор иконки.

PS: Вообще тема интерактивности форм поднималась не раз, предлагалось и строить форму run-time, подргужая содержимое определенных элементов, и работать в несколько шагов с буфером данных через механизм сессий, но вообщем все как всегда закончилось на том, что каждй делает так как умеет, а тот кто умеет по разному делает так как привык.

Для меня многое решил метод, который я описал выше, однако раньше в нем были недостатки, такие как плохая совместимость из-за использования DOM, но на данный момент практически все браузеры стали поддерживать технологию.

__________________
The time was broken ...


Помещено Viktor 13-07-2003 в 12:04:

quote:
Открывающееся окно будет содержать множество чекбоксов, на бызе выбранных чекбоксов нужно сделать массив и передать все скрытыми полями в основную форму

Такой вариант был выбран изходя из вышесказанного.
Проще передать один параметр, чем несколько десятков.

А, вообще, вариантов очень много...

__________________
Тест - проверка верности!


Помещено Viktor 13-07-2003 в 14:10:

Я показал принцип передачи данных, а доработка до необходимых требований - дело собственных рук.

__________________
Тест - проверка верности!


Помещено Elvister 02-09-2003 в 00:28:

quote:
Viktor:
Держи. Думаю разберешься.
Файл: index.zip


Спасибо! Все отлично заработало!

До этого 3 дня искал...

__________________
На этом мысль ушла...


Помещено polo 02-09-2003 в 11:34:

Кстати, решил эту задачу используя пхп и сессии, работает на ура, хотя js используется для перезагрузки страницы.

__________________
Всегда есть решение.


Помещено Elvister 03-09-2003 в 14:46:

Question

У меня другой вопрос:
Создаю окно, в нем происходят какие-либо вещи, а потом окно закрывается, при этом opener должен обновится.

Пробую по образу и подобию:
1. пишу js функцию:

code:

function refresh() {
   opener.document.refresh
}


2. делаю кнопку

code:
onclick="refresh(); window.close();"



Окно закрывается, opener не обновляется. Что я не так сделал?

__________________
На этом мысль ушла...


Помещено polo 03-09-2003 в 16:09:

не opener.document.refresh а
opener.document.refresh(); и self.close(); тоже можно в функцию добавить:
function refresh() {
opener.document.refresh();
self.close();
}

__________________
Всегда есть решение.


Помещено Viktor 03-09-2003 в 16:10:

Попробуй метод navigate(). В нем казываешь URL загружаемого документа.

Чтото в таком виде

opener.navigate("my.htm")

__________________
Тест - проверка верности!


Помещено blacki 03-09-2003 в 16:37:


PHP:


function ref() {
    
opener.location.reload()
    
self.close();
}



Ð_аботает, проверенно.

__________________
Национальность - русский, вероисповедание - программист.


Помещено Elvister 03-09-2003 в 17:13:

Действительно не сообразил, что можно self.close(); запихать в одну функцию. Теперь все отлично передается и работает. Хотя любопытно почему
opener.document.formname.fieldname.value = 'text'
срабатывает раньше, чем
opener.location.reload()

Но я решил эту проблему через две кнопки "Next"

__________________
На этом мысль ушла...


Помещено blacki 04-09-2003 в 08:11:

Elvister так же можно по onload основного окна запрашивать твой text из открываемого.

__________________
Национальность - русский, вероисповедание - программист.


Помещено javascripter 19-04-2007 в 09:07:

ЛЮДИ, а можно по id поля формы это передать? Очень надо, то же самое, что index.zip только для id а не имени поля. очень надо!!!!


Помещено RaZEr 19-04-2007 в 18:50:

Для получения объекта по ID есть ф-ия: document.getElementById(ID)

__________________
The time was broken ...


Формат времени GMT. Текущее время 17:18.
Показаны 25 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.