Окно обновления PHP?эквивалентно перезагрузке страницы F5? - PullRequest
9 голосов
/ 02 декабря 2011

Есть ли в PHP что-нибудь, что эквивалентно ручному нажатию кнопки перезагрузки страницы F5?Мой php-скрипт находится во фрейме и не является родительским, но ему необходимо обновить всю страницу, а не только ее фрейм.

Ответы [ 10 ]

24 голосов
/ 15 декабря 2012

На самом деле это возможно:

Header('Location: '.$_SERVER['PHP_SELF']);
Exit(); //optional

И он перезагрузит ту же страницу.

6 голосов
/ 18 апреля 2013

Если у вас есть какой-либо текст до

header('Location: http://www.example.com/youformhere.php');

, у вас будут проблемы, потому что он должен быть отправлен до того, как любой другой текст будет отправлен на страницу.

Попробуйте использовать этот кодвместо этого

<?php 
$page = $_SERVER['PHP_SELF'];
echo '<meta http-equiv="Refresh" content="0;' . $page . '">';
?>

Помните, этот код создаст бесконечный цикл, поэтому вам, вероятно, потребуется внести в него некоторые условные изменения.

6 голосов
/ 02 декабря 2011

С PHP вы можете справиться с вещами на стороне сервера.Что вы можете сделать, это напечатать это в вашем iframe:

parent.window.location.reload();
5 голосов
/ 02 декабря 2011

PHP не может заставить клиента что-либо делать. Он не может обновить страницу, не говоря уже об обновлении родительского элемента фрейма.

РЕДАКТИРОВАТЬ: Вы можете, конечно, заставить PHP писать JavaScript, но это не PHP, а фактически JavaScript, и он потерпит неудачу, если JavaScript отключен.

<?php
    echo '<script>parent.window.location.reload(true);</script>';
?>
1 голос
/ 24 апреля 2013

с PHP вы можете использовать два перенаправления. В некоторых случаях он работает так же, как и обновление.

Вы можете использовать страницу redirect.php и опубликовать на ней свой последний URL методом GET (например). затем в redirect.php вы можете изменить заголовок на местоположение, которое вы отправили ему методом GET.

вот так: Ваша страница:

<?php
header("location:redirec.php?ref=".$your_url);
?>

redirect.php:

<?php
$ref_url=$_GET["ref"];
header("location:redirec.php?ref=".$ref_url);
?>

это сработало для меня хорошо.

1 голос
/ 29 января 2013
<?php 
echo "<script>window.opener.location.reload();</script>";
echo "<script>window.close();</script>";
?>
0 голосов
/ 29 июня 2014

Добавление следующего в заголовок страницы работает для меня:

<?php

if($i_wanna_reload_the_full_page_on_top == "yes")
{
$reloadneeded = "1";
}
else
{
$reloadneeded = "0";
}

if($reloadneeded > 0)
{
?>
<script type="text/javascript">
top.window.location='indexframes.php';
</script>
<?php
}else{}
?>
0 голосов
/ 22 ноября 2013

Все, что вам нужно сделать, чтобы вручную обновить страницу, это предоставить ссылку, указывающую на ту же страницу

Как это: Обновить выбор

0 голосов
/ 03 декабря 2011

думаю, вы могли бы повторить метатег для регулярного обновления ... как

<meta http-equiv="refresh" content="600" url="your-url-here"> 
0 голосов
/ 02 декабря 2011

Используйте JavaScript для этого.Вы можете сделать:

echo '
<script type="text/javascript">
   parent.window.location.reload(true);
</script>
';

В PHP, и это обновит страницу фрейма родителя.

...