|
|
|
| Здравствуйте. Подскажите пожалуйста, как обновить данные в родительском окне. Открываю окно window.open
В дочернем окне обрабатывается форма php. Причём чтобы она обработалась и окно закрылось нажатием одной кнопки, пришлось сделать так:
onmousedown="frm.submit()"; onmouseup="clos()
function clos()
{
window.close();
}
Ну это всё работает, а для того, чтобы по закрытии окна обновилась инфа в родительском, вставил в функцию parent.location.href= ("url");
Теперь, если window.close() убрать, родительское окно загружается в дочернее, если вставить-окно закрывается, а инфа в род. окне не обновляется. Правда форма обрабатывается и в том и другом случае. Подскажите, как выйти из ситуации. | |
|
|
|
|
|
|
|
для: shest
(02.02.2007 в 00:18)
| | opener.reload() - обновить родительское окно. | |
|
|
|
|
|
|
|
для: RMW
(02.02.2007 в 00:50)
| | Не выходит. Да и как это соединить? opener-свойство window, a reload- метод location. | |
|
|
|
|
|
|
|
для: Shest
(02.02.2007 в 07:03)
| | Ну, значит
| |
|
|
|
|
|
|
|
для: RMW
(02.02.2007 в 13:01)
| | Нашёл другое решение:
В родительском окне
function rel()
{
document.location.href='index.php';
}
|
в дочернем
function clos()
{
if (document.frm.elements[1].value!="")
{
frm.submit();
window.opener.rel();
window.close();
}
}
|
Вот правда теперь другая проблема. При совершенно равных условиях форма то отправляется, то нет (примерно через раз) Буду разбираться :) | |
|
|
|
|
|
|
|
для: Shest
(02.02.2007 в 16:31)
| | document.location.href - такого нет (мало ли, что работает). Есть document.location (только чтение), который не рекомендуется, вместо него document.URN, и есть location.href . (объект объекта window)
По коду - не надо делать close() в одном скрипте с другими. Первое решение было лучше, хотя и трюк. Или, чтобы совсем нормально - setTimeout("имя_окна.close()",1); | |
|
|
|
|
|
|
|
для: 12345
(02.02.2007 в 16:36)
| | Спасибо. document.location.href я в умной книге взял, прада она старая (2000г)
Но, похоже, он не подходит (как и document.location.replace
Они как-то странно работают. После перехода по адресу данные обновляются хаотично, то есть два раза подряд обновляются, один раз нет и наоборот хотя запись в файлы (отправка формы) каждый раз выполняется. Кэширование я запретил.
Вот reload действует железно, но каждый раз выскакивает окно с подтверждением повторной отправки данных. Как это действие подавить? | |
|
|
|
|
|
|
|
для: Shest
(03.02.2007 в 00:04)
| | Ну чтоже, никто не знает, как при reload избавиться от повторной отправки данных? :( | |
|
|
|
|
|
|
|
для: Shest
(03.02.2007 в 09:42)
| | Возможнно без reload так:
location+='?'+Math.random();
А может дело не в кешировании?
А страница после отправки
формы из дочернего окна не обновляется саме по себе?
Может попробовать поиграться с target формы.
Например в родительском окне в скрипте
name='main';
В дочернем в форме
<form target="main"... | |
|
|
|
|
|
|
|
для: RMW
(03.02.2007 в 12:56)
| | Решил оставить reload, А от повторной отправки данных отделался так: session_start();, из -за которой повторную отправку данных требовал браузер, запускаем только в случае удачного введения логина и пароля, потом делаем перезагруз
echo "<meta http-equiv=refresh content='0; url=index.php'>";
|
Спасибо. Хотя наверное придётся от отдельного окна отказаться, потому что в IE и фоксе это действует безотбойно, в opera обновляет данные, как придётся. | |
|
|
|