Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > обновить другой фрейм


Автор: g27 1.2.2008, 13:04
Вообщем у меня есть два фрейма, с одного при нажатии кнопки запускается пхп скрипт. Так вот как сделать, что бы тот скрипт одновил например фрейм по имени test.  На скоко я понял это делается через java script. Я хотел бы увидеть конструкцию. Спасибо.

Автор: bars80080 1.2.2008, 13:12
ну если, js, то можно так
<frame name="frame1">
<frame name="frame2">

в frame1
Код

<script>
function rel_fr2() {
parent.frame2.location.replace="?p=p";
}
</script>
<a href="#" onclick="rel_fr2()">обновить</a>

Автор: g27 1.2.2008, 13:16
да ссылкой и через пхп можно. А что бы нажимать не надо было, что бы при выполнении пхп скрипта одной из команд была команда обновить некий фрейм. На скоко я понял это делается через js вот и спросил тут как

Автор: bars80080 1.2.2008, 13:29
если требуется обновить оба фрэйма, возможно, лучше тогда уж не использовать фрэймы, а единую страницу

если конкретно по задаче, то два способа
Цитата
с одного при нажатии кнопки запускается пхп скрипт

кнопку в форму, в ней пишем:
Код

<script>
function rel_fr2() {
parent.frame2.location.replace="?p=p";
}
</script>
<form onsubmit="rel_fr2()">


второй вариант, это в первом пхп-скрипте прописать в конце вывода такую строку:
Код

echo '<script>
parent.frame2.location.replace="?p=p";
</script>';


что-то такое

Автор: g27 1.2.2008, 13:37
спасибо, буду экспериментировать

Автор: g27 1.2.2008, 13:54
заработало. Я рад  smile  спасибо.

Автор: g27 2.2.2008, 12:13
У меня не всегда он работает. А альтернативы есть какие-нибудь?

Автор: g27 2.2.2008, 21:40
незнаю почему, но перестало работать, вроде ничего не менял. Какие там нюансы могут быть?

Автор: g27 2.2.2008, 23:10
я тут ещё подумал, может можно к кнопке в форме прикперить команду обновить другой фрейм (или открыть самого себя)  используя пхп?

Автор: bars80080 4.2.2008, 11:17
Цитата
У меня не всегда он работает

на локальном быстром хостинге?

попробуйте:
Код

echo '<script>
parent.frame2.location.replace="?p='.time().'";
</script>';


пхп новый фрэйм не откроет, можно либо по нажатию кнопки в форме указать атрибут target="name_frame", тогда результат работы скрипта окроется во фрэйме,
либо в пхп-скрипте указать тот же js-код, который сделает обновление в обоих фрэймах

Автор: g27 5.2.2008, 21:40
так, провёл эксперимент, создадим простую страничку с фреймом.
Это у нас fr.php
Код

<?
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<frameset cols="585,675" rows="*"> 
  <frame  src="fr2.php">
  <frame name="frame1" src="fr1.php">
</frameset>
<noframes>
<body bgcolor="#FFFFFF" text="#000000">
</body>
</noframes> 
</html>
<?
?>

это у нас fr1.php
Код

<?
echo date("H:i:s");
?>

а это fr2.php
Код

<?
print("<a href=\"fr2.php\">обновить</a>");


echo '<script>
parent.frame1.location.replace="?p='.time().'";
</script>';
?>


теперь, при нажатии ссылки обновить, должен перегружаться и другой фрейм, я ввёл что бы время показывал для наглядности, но не перегружает. Что не так?

Автор: bars80080 6.2.2008, 10:40
fr2.php
Код

<?
print("<a href=\"fr2.php?time=".time()."\">обновить</a>");


echo '<script>
parent.frame1.location.replace("fr1.php?p='.time().'");
</script>';
?>

вроде так

Автор: g27 6.2.2008, 23:35
вроде работает, спасибо=)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)