![]() |
Показаны 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)
Передача данных из одного окна в другое
Есть форма, в форме есть ссылка на открытие нового окна откуда из другой формы выбираются опции. Как можно передать все эти данные в форму основного окна. Может кто встречал пример?
__________________
Всегда есть решение.
Ты когда создаешь новое окно, ты ему присваиваешь имя через которое к нему можно обращаться. Еще есть у таких окон атрибут opener который является указателем на окно из которого открыто данное. В основном окне можно создать спрятанные элементы форм и присвоить им значения, выбранные в открытом окне. Или я чего-то не понял ?
__________________
The time was broken ...
Держи. Думаю разберешься.
__________________
Тест - проверка верности!
RaZEr спсибо конечно, теоретически я знаю, но ява скрипт я не учил никогда и всегда когда нужно что-то делаю сдираю с готовых решений.
polo добавил 11-07-2003 в 12:29:01:
Viktor спасибо огромное, думаю именно то что нужно.
__________________
Всегда есть решение.
Ты разобрался в том что написал Viktor, или нет ?
__________________
The time was broken ...
Еще вопрос: Открывающееся окно будет содержать множество чекбоксов, на бызе выбранных чекбоксов нужно сделать массив и передать все скрытыми полями в основную форму, далее при закрытии и открытии окна с чекбоксами нужно чтобы теже чекбоксы были выбраны. Как такое можно сделать при помощи яваскрипт?
__________________
Всегда есть решение.
Я думаю, что тебе не стоит заморачивться с созданием 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 ...
Попробуй это...
__________________
Тест - проверка верности!
Оригинально, но есть пара минусов:
- Только для чекбоксов
- После отправки прийдется разбирать строку вида "10101..."
- При больших объемах перебор элементов формы будет тормозить.
__________________
The time was broken ...
Все это хорошо но не совсем то, в той форме нет параметров, только при помощи 1 0 указывается какой чекбокс выбран, мне потом эти данные нужно обработать, данные беруться из базы откуда скрипт будет знать что именно 1 а что 0, и потом в осовной форме нужно вывести список выбранного.
__________________
Всегда есть решение.
А мой вариант тоже не подходит ?
__________________
The time was broken ...
RaZEr нужно будет попробовать, я еще не начал реализовывать, так предварительно спросил, как сделаю сообщу результаты, хотя я все больше и больше думаю сделать все это на пхп и не морочить себе голову.
__________________
Всегда есть решение.
Дополнительные формы нужны когда есть необходимость сделать параллельный запрос, например когда в форме нужно выбрать иконку (для чего-либо) из доступных на сервере. При этом интегрировать список иконок в форму практически невозможно (постраничный вывод иконок, компактность поля), а делать несколько шагов сложно, и как правило неприемлемо ... один из шагов может использоваться из разных мест сайта ... тот же выбор иконки.
PS: Вообще тема интерактивности форм поднималась не раз, предлагалось и строить форму run-time, подргужая содержимое определенных элементов, и работать в несколько шагов с буфером данных через механизм сессий, но вообщем все как всегда закончилось на том, что каждй делает так как умеет, а тот кто умеет по разному делает так как привык.
Для меня многое решил метод, который я описал выше, однако раньше в нем были недостатки, такие как плохая совместимость из-за использования DOM, но на данный момент практически все браузеры стали поддерживать технологию.
__________________
The time was broken ...
quote:
Открывающееся окно будет содержать множество чекбоксов, на бызе выбранных чекбоксов нужно сделать массив и передать все скрытыми полями в основную форму
__________________
Тест - проверка верности!
Я показал принцип передачи данных, а доработка до необходимых требований - дело собственных рук.
__________________
Тест - проверка верности!
quote:
Viktor:
Держи. Думаю разберешься.
Файл: index.zip

__________________
На этом мысль ушла...
Кстати, решил эту задачу используя пхп и сессии, работает на ура, хотя js используется для перезагрузки страницы.
__________________
Всегда есть решение.
У меня другой вопрос:
Создаю окно, в нем происходят какие-либо вещи, а потом окно закрывается, при этом opener должен обновится.
Пробую по образу и подобию:
1. пишу js функцию:
function refresh() {
opener.document.refresh
}
onclick="refresh(); window.close();"

__________________
На этом мысль ушла...
не opener.document.refresh а
opener.document.refresh(); и self.close(); тоже можно в функцию добавить:
function refresh() {
opener.document.refresh();
self.close();
}
__________________
Всегда есть решение.
Попробуй метод navigate(). В нем казываешь URL загружаемого документа.
Чтото в таком виде
opener.navigate("my.htm")
__________________
Тест - проверка верности!
function ref() {
opener.location.reload()
self.close();
}
__________________
Национальность - русский, вероисповедание - программист.
Действительно не сообразил, что можно self.close(); запихать в одну функцию. Теперь все отлично передается и работает. Хотя любопытно почему
opener.document.formname.fieldname.value = 'text'
срабатывает раньше, чем
opener.location.reload()
Но я решил эту проблему через две кнопки "Next" 
__________________
На этом мысль ушла...
Elvister так же можно по onload основного окна запрашивать твой text из открываемого.
__________________
Национальность - русский, вероисповедание - программист.
ЛЮДИ, а можно по id поля формы это передать? Очень надо, то же самое, что index.zip только для id а не имени поля. очень надо!!!!
Для получения объекта по 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.