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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как перезагрузить предка? 
:(
    Опции темы
korob2001
Дата 2.11.2005, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



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


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Sardar
Дата 2.11.2005, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


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

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



Читай тему "Окна и фреймы" от Aliance, вопросов не будет.

Ответ: opener.location.(href=<url>|reload()|navigate(<url>));


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


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Sardar - спасибо. opener.location.reload() то, что нужно.
Aliance - тебе тоже спасибо, за статью.




--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
korob2001
Дата 14.12.2005, 04:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Ребята, вот вернусь к старой теме.
Проблема в том, что перезагрузка предка происходит на клиенте, и соответственно сначала происходит она, а только потом данные из открытого окна отправляются на сервер. Вобщем мне нужно что бы из открытого окна форма отправлялась на сервер и сразу после этого происходила перезагруска предка, что бы сразу были видны все изменения.
Может посоветуете какое-нить событие, которое бы происходило после отправки данных на сервер? Пробовал onClick, onSubmit, но всё равно форма сначала перезагружает предка.
Заранее благодарен.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Ciber SLasH
Дата 14.12.2005, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



В форму вписывай onSubmit='return doSubmit(this)'
перед </HEAD> вставляй:
Код
<script type='text/javascript'>
function doSubmit(obj) {
    obj.submit();
    opener.location.reload(true);
return true;
}
</script>

PM   Вверх
Sardar
Дата 14.12.2005, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


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

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



Ciber SLasH не прокатит, form.submit() не блокирует исполнение JS.
A почему бы не отправить форму в родителя? После изменений сразу генерим страницу. Иначе можно с ответом от отправленной формы в малом окне получать JS, что перезагрузит предка и закроет своё малое окно:
Код
if(opener && opener!=self) opener.location.reload();
self.close();



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


Эксперт
***


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

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



Цитата
не прокатит, form.submit() не блокирует исполнение JS.

Точно, я неправильно понял вопрос.
self.close(); — это конечно хорошо, но вот IE гад спрашивает о том, что окно пытается самоуничтожиться. smile

Это сообщение отредактировал(а) Ciber SLasH - 14.12.2005, 22:40
PM   Вверх
korob2001
Дата 20.12.2005, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



ОПСССС smile Что-то я совсем запарился. Извиняюсь за задержку.
Sardar - self.close() не подходит, так как сервер может сгенерировать ошибку и вернуть её, после чего юзер должен будет подправить введённую информацию.

Мне здесь такая идея пришла в голову. Может сделать что-то в таком духе?

1. Юзер отправляет данные на сервер.
2. Если запрос был правильным, то генерируется страница с поздравлением об успешном окончании действия. Собственно серверная программа пусть и генерирует JavaScript, вместе со страницей поздравления, который будет перезагружать предка по событию onLoad. Если же была получена ошибка, то генерируется страница с сообщением об ошибке и соответственно без каких либо перезагрузок, так как нет смысла что-либо перезагружать если данные на сервер не были пропущены.

Т.е. если данные сохранены на сервере, то серверная программа генерирует такой тег body страницы поздравления:
Код

<body onLoad="opener.location.reload()">

Если же была обнаружена ошибка в информации, то генерируется <body> без события оnLoad.

Сейчас попробую.
Всем спасибо, за желание помочь. Я просто сам что-то намутил воды. smile

Это сообщение отредактировал(а) korob2001 - 20.12.2005, 23:28


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
igorold
Дата 21.8.2006, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

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



сделал также, но при этом каждый раз идет сообщение, что просматриваемая страница содержит данные, которые будут обновлены....ъъ
а можно сделать, чтобы родительское окно обновлялось без всяких сообщений. 
у меня Мозилла ... 


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Vaulter
Дата 21.8.2006, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



а что мешает после процесса обработки формы в скрипте PHP вывести код JS???
в том числе и закрывающее окно smile

для наглядности:
Код

$page=& new cHtml('form');
$page->build_forms();
if($page->valid())//пошел POST и все данные валидированы
{
 // тра та та
 $page->reload_parent();
 $page->close();// должен ли close - делать вывод и exit?
 $page->out();
 exit;
}
$page->out('default');//

class cHtml
{
    function refresh_parent()
    {
        $this->content.=<<<JS
<script type='text/javascript'>
    if(opener)opener.location.reload();
</script>
JS;
    }
    function close()
    {
        $this->content.=<<<JS
<script type='text/javascript'>
    this.close();
</script>
JS;
    }
}

надеюсь процесс понятен...
если еще и есть возможность кидать сообщения пользователю в сессию, 
тогда проблем вообще не возникает!!!


--------------------
PM MAIL WWW ICQ   Вверх
igorold
Дата 21.8.2006, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

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



У меня Perl+JS+HTML+MySQL  smile 


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Vaulter
Дата 21.8.2006, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



igorold, ну суть осталась.


--------------------
PM MAIL WWW ICQ   Вверх
igorold
Дата 22.8.2006, 05:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

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



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

return "<html><head><script type=text/javascript>opener.location.reload();self.close();</script></head><body></body></html>";

именно при закрытии окна и идет сообщение ... а оно стандартное и после 3-х раз уже надоедает ... 


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Sardar
Дата 22.8.2006, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


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

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



Ну млин нафлудили smile

igorold, предупреждение будет если окно было открыто не как window.open(), в остальном не должно быть предупреждения.


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


 




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


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

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