Io sfrutterei la querystring per effettuare un refresh sulla stessa pagina.
Butto giù una bozza di codice:
Dopo l'invio del form, lo script inserirà i dati nel db e mostrerà il codice html con la frase che ringrazia per aver compilato il form. Per evitare che venga nuovamente visualizzato il form, usiamo la funzione exit() che interrompe lo script.Codice PHP:<?php
if ($_POST['insert_actor']) {
foreach($_POST as $key => $val) {
if(!$val) $POST[$key]="NULL";
}
$result=mysql_query("INSERT INTO {$db_prefix}film_actor VALUES (null,{$var['id']},{$var['insert_actor']});");
}
if ($_GET['action'] == 'insert') {
exit('
<html>
<head>
<meta http-equiv="Refresh" content="2; url=edit_film.php?action=compileForm">
</head>
<body>
<h1>Grazie per aver compilato il form. Attendere il caricamento</h1>
</body>
</html>');
}
echo "<form action=\"edit_film.php?action=insert\" method=\"post\">\n";
echo "<input type=\"hidden\" name=\"id\" value=\"{$var['id']}\">\n";
echo "<input type=\"hidden\" name=\"insert_actor\" value=\"{$arr['id']}\">\n";
echo "<input type=\"text\" name=\"name\">";
echo "<input type=\"submit\" value=\"".NEW_ACTOR."\"><\n";
echo "</form>\n";
?>
Nell'intestazione dell'HTML appena inviato abbiamo specificato, tramite un meta tag, l'indirizzo della pagina a cui rimandare automaticamente dopo 2 secondi. Quest'ultima, avendo un contenuto di $_GET['action'] diverso da "insert" e non presentando neanche la variabile $_POST['insert_actor'], mostrerà soltanto il form.
Così dovrebbe andare :P

Rispondi quotando