C'è qualcosa in PHP che equivale a premere manualmente il pulsante di ricarica della pagina F5? Il mio script php è in una cornice e non è lo script genitore, ma ha bisogno di aggiornare l'intera pagina e non solo la sua cornice.Finestra di aggiornamento PHP? equivalente al caricamento della pagina F5?
risposta
Con PHP puoi gestire solo le cose lato server. Quello che puoi fare è stamparlo nel tuo iframe:
parent.window.location.reload();
PHP non può costringere il cliente a fare qualsiasi cosa. Non è possibile aggiornare la pagina, per non parlare di aggiornare il genitore di una cornice.
EDIT: Potete naturalmente, rendere PHP scrittura JavaScript, ma questo non è PHP facendo, in realtà è Javascript, e fallirà se JavaScript è disabilitato.
<?php
echo '<script>parent.window.location.reload(true);</script>';
?>
Usa JavaScript per questo. Si può fare:
echo '
<script type="text/javascript">
parent.window.location.reload(true);
</script>
';
In PHP e si aggiorna la pagina con frame del genitore.
che si potrebbe riecheggiare il meta tag per fare l'aggiornamento a intervalli regolari ... come
<meta http-equiv="refresh" content="600" url="your-url-here">
In realtà è possibile:
Header('Location: '.$_SERVER['PHP_SELF']);
Exit(); //optional
e sarà ricaricare la stessa pagina.
Questo dovrebbe essere contrassegnato come approvato perché fa esattamente ciò che è inteso in PHP (non javascript o inserimento in HTML). –
@Ryuji Questo NON risolve la domanda originale. Come farebbe a ricaricare il documento genitore? –
@MikeBrant perché è esattamente ciò che fa. Ordina php per ricaricare la stessa pagina. – NewProger
<?php
echo "<script>window.opener.location.reload();</script>";
echo "<script>window.close();</script>";
?>
Se hai qualsiasi testo prima di un
header('Location: http://www.example.com/youformhere.php');
avrete problemi, perché questo deve essere inviata prima di qualsiasi altro testo viene inviato alla pagina.
Prova utilizzando questo codice al posto
Basta ricordare, questo codice creerà e ciclo infinito, quindi probabilmente avrete bisogno di apportare alcune modifiche condizionate ad esso.
con PHP è possibile utilizzare due reindirizzamenti. Funziona come l'aggiornamento in alcuni problemi.
è possibile utilizzare una pagina redirect.php e pubblicare il tuo ultimo URL ad esso con il metodo GET (per esempio). quindi in redirect.php puoi cambiare l'intestazione nella posizione che ti è stata inviata tramite il metodo GET.
come questo: tua pagina:
<?php
header("location:redirec.php?ref=".$your_url);
?>
redirect.php:
<?php
$ref_url=$_GET["ref"];
header("location:redirec.php?ref=".$ref_url);
?>
che ha lavorato per me bene.
Tutto quello che devi fare per aggiornare manualmente la pagina è quello di fornire un link che punta alla stessa pagina
Ti piace questa: Refresh la selezione
Aggiunta seguente nell'intestazione della pagina funziona per me:
<?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{}
?>
perfetto !! Proprio quello di cui avevo bisogno! Grazie! – user840930
. . . un'ulteriore domanda Ho fatto: echo "
"; che ricarica l'intera pagina di cui ho bisogno, ma il frame in cui si trovava lo script php in esecuzione non si sta aggiornando. E non riesco a chiamare un altro parent.window.location.reload o anche un onload = \ "window.location = '$ page' \" cosa posso fare? – user840930non sono sicuro di averlo capito, ma hai controllato il tuo frame src? Controlla se parent.window lo sta caricando correttamente ... – gustavotkg