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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача переменных из фрейма, как реализовать? 
:(
    Опции темы
MakNik
Дата 23.1.2008, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Динамически формируется страница, с фреймами (фреймов может быть любое количество, в данном примере 5)
Код

<iframe src="./go.php?id=559" width=600 height=150 marginwidth="0" marginheight="0" hspace="0" vspace="0" scrolling="yes" frameborder="1" noresize=""></iframe><br>
<iframe src="./go.php?id=1" width=600 height=150 marginwidth="0" marginheight="0" hspace="0" vspace="0" scrolling="yes" frameborder="1" noresize=""></iframe><br>
<iframe src="./go.php?id=559" width=600 height=150 marginwidth="0" marginheight="0" hspace="0" vspace="0" scrolling="yes" frameborder="1" noresize=""></iframe><br>
<iframe src="./go.php?id=559" width=600 height=150 marginwidth="0" marginheight="0" hspace="0" vspace="0" scrolling="yes" frameborder="1" noresize=""></iframe><br>
<iframe src="./go.php?id=13" width=600 height=150 marginwidth="0" marginheight="0" hspace="0" vspace="0" scrolling="yes" frameborder="1" noresize=""></iframe><br>


В каждом фрейме есть форма, с кнопкой "Выполнить". 
На основной странице есть форма с кнопкой "Внести изменения" при нажатии которой необходимо в БД внести id тех фреймов, в которых была нажата кнопка "Выполнить".
Подскажите, пожалуйста, как можно такой механизм реализовать? 
PM   Вверх
Sardar
Дата 23.1.2008, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



В основном фрейме строиться скрытая форма, в которую добавляется всё необходимое (в виде hidden элементов) по кнопкам "Выполнить". Кнопкой "Внести изменения" форма разом уходит. Самый простой и вероятно самый корректный вариант.

P.S. сессии на сервере использовать не нужно - не модно и может подтромаживать smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
MakNik
Дата 24.1.2008, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



В основном фрейме создаю форму:
Код

<form action='test.php' method='post' name='f1'>
<input type='hidden' name='id' value=12>
<input type='hidden' name='action' value='commit'>

<iframe src="./go.php?id=559" width=600 height=150 marginwidth="0" marginheight="0" hspace="0" vspace="0" scrolling="yes" frameborder="1" noresize=""></iframe><br>
<input type='hidden' value='0' name='catn[559]'>
<iframe src="./go.php?id=1" width=600 height=150 marginwidth="0" marginheight="0" hspace="0" vspace="0" scrolling="yes" frameborder="1" noresize=""></iframe><br>
<input type='hidden' value='0' name='catn[1]'>
<iframe src="./go.php?id=522" width=600 height=150 marginwidth="0" marginheight="0" hspace="0" vspace="0" scrolling="yes" frameborder="1" noresize=""></iframe><br>
<input type='hidden' value='0' name='catn[522]'>
<iframe src="./go.php?id=315" width=600 height=150 marginwidth="0" marginheight="0" hspace="0" vspace="0" scrolling="yes" frameborder="1" noresize=""></iframe><br>
<input type='hidden' value='0' name='catn[315]'>
<iframe src="./go.php?id=13" width=600 height=150 marginwidth="0" marginheight="0" hspace="0" vspace="0" scrolling="yes" frameborder="1" noresize=""></iframe><br>
<input type='hidden' value='0' name='catn[13]'>

<input type=submit value="Внести изменения"></center></form>


в php обрабатывается массив catn, где значение 0 указывает что кнопка "Выполнить" в конкретном фрейме не была нажата. 
Подскажите, пожалуйста, как из фрейма изменить конкретное значение в catn[]?

PM   Вверх
MakNik
Дата 24.1.2008, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



В каждом фрейме при нажатии на кнопку выполняется скрипт, но значение не передается:

Код

<script type="text/javascript">
<!--
parent.document.f1.catn[559].value="1";
//-->
</script>


Подскажите, плз., как правильно?

Это сообщение отредактировал(а) MakNik - 24.1.2008, 12:07
PM   Вверх
Sardar
Дата 24.1.2008, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



В основном фрейме пишем функцию:

Код

<script type="text/javascript">
function setCatalogSelection(id, sel) {
    try {
        document.forms.f1.elements["catn["+id+"]"].value = sel? 1: 0;
    } catch(e) {
        /* каталога с данным id не существует (его input:hidden), это ошибка, раппортируй к себе.
            если такого быть не может, убери try/catch */
    }
}
</script>


В ифрейме пишем window.parent.setCatalogSelection(к_примеру_45, true/false).

Добавлено через 3 минуты и 11 секунд
На клиенте всё же лучше:
Код

function selectCatalog(id) {
    if(window.parent.setCatalogSelection) {
        window.parent.setCatalogSelection(id, true);
    } //else -- фрейм открыт на прямую, можно сделать редирект
}



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 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.