| |
|
|
| | Ситуация такая. В iframe загружаются формы, в зависимости от требований, а также выводятся туда же для исправления ошибок при вводе. Теперь, если все заполнено правильно, то после необходимых действий надо перенаправить посетителя на другую страницу. Но если написать, например:
header("Location: index.php");
то индексная страница также загружается в этот фрейм, а уже открытая не перегружается. Как покинуть этот фрейм? | |
| |
|
|
| |
|
|
| |
для: sim5
(05.02.2007 в 17:07)
| | | если не ошибаюсь то
top.document.location = 'url';
javascript | |
| |
|
|
| |
|
|
| |
для: sim5
(05.02.2007 в 17:07)
| | | можно так:
function reload_parent()
{
parent.location.href=parent.location.href;
}
|
| |
| |
|
|
| |
|
|
| |
для: Loki
(05.02.2007 в 17:23)
| | | Но это ведь JS, тоесть эти действия на стороне клиента, а мне надо это произвести на сервере. | |
| |
|
|
| |
|
|
| |
для: sim5
(05.02.2007 в 17:28)
| | | а на сервере никаких фреймов нет:) | |
| |
|
|
| |
|
|
| |
для: Loki
(05.02.2007 в 17:31)
| | | Я тогда чуть подробнее, чтобы понятней было. Вот сокращенно HTML-код страницы
<form action="index.php" name=country_select method="post" id=cselest>
<fieldset>
<legend>Ваша страна проживания</legend>
<input type=radio name=form_select value=rusform onclick="this.form.setAttribute('target','frmcustomers'); this.form.submit();">
<label for=form_select>Россия</label>
<input type=radio name=form_select value=sngform onclick="this.form.setAttribute('target','frmcustomers'); this.form.submit();">
<label for=form_select>Страны СНГ</label>
<input type=radio name=form_select value=othform onclick="this.form.setAttribute('target','frmcustomers'); this.form.submit();">
<label for=form_select>Дальнее зарубежье</label>
</fieldset>
</form>
<iframe onLoad="window.document.getElementById('customers').innerHTML= frmcustomers.document.body.innerHTML;"
frameborder='0' width='0' height='0' name="frmcustomers" id="frmcustomers"></iframe><div id='customers'></div>
|
При выборе той или иной страны в iframe загружаются соответствующие формы, просто это так.
$output = форма;
echo $output;
exit;
Ну короче работаем с клиентом. Сама страница в этом случае не перезагружается. Ну тот же принцип AJAX. Как все ОК, мне нужно перейти на другую страницу. Но вызов:
header("Location: index.php");
грузит эту страницу в фрейм. Можно конечно опять послать в фрейм "Спасибо и нажмите эту пимпочку". Но нехорошо, потому как форма country_select остается на этой странице, ну и вообще это не нужно. Другими словами, все что я отправляю попадает во фрейм, а мне надо просто перегрузить страницу, открыть ее новую. Ну вроде понятно изъяснил. | |
| |
|
|
| |
|
|
| |
для: sim5
(05.02.2007 в 17:47)
| | | P.S. Тоесть предлагается послать в фрейм JS-код вызова функции, которая и перегрузит страницу? | |
| |
|
|
| |
|
|
| |
для: sim5
(05.02.2007 в 17:47)
| | | Я вам написал как это сделать. Скрипт ни про какие фреймы ничего не знает - этим всем занимается броузер. Представьте что окно броузера это один большой фрейм и его поведение относительно скрипта сразу станет очевидным. | |
| |
|
|
| |
|
|
| |
для: Loki
(05.02.2007 в 17:53)
| | | Я это знаю. И что в конечном итоге, это часть распределенной памяти. А что можно сделать на стороне сервера, чтобы перегрузить страницу? Или совсем тупой вопрос? | |
| |
|
|
| |
|
|
| |
для: sim5
(05.02.2007 в 17:58)
| | | нужно сказать броузеру чтобы он перегрузил родительский фрейм.
см. выше. | |
| |
|
|