Visualizzazione dei risultati da 1 a 5 su 5

Discussione: bloccare il refresh

  1. #1

    bloccare il refresh

    Salve
    aiuto per problema come in oggetto, allora...
    ponendo di avere un modulo da inviare come da codice sequente :
    codice:
    <?
    if($HTTP_POST_VARS['insert_actor']) {
      $var=$HTTP_POST_VARS;
      foreach($var as $key => $val) {
        if(!$val) $var[$key]="NULL";
      }
      $result=mysql_query("INSERT INTO ".$db_prefix."film_actor VALUES (null,".$var['id'].",".$var['insert_actor'].");");
    } 
    
      print "<form action=\"edit_film.php\" method=\"post\">\n";
      print "<input type=\"hidden\" name=\"id\" value=\"".$var['id']."\">\n";
      print "<input type=\"hidden\" name=\"insert_actor\" value=\"".$arr['id']."\">\n";
      print "<input type=\"text\" name=\"name\">";
      print "<input type=\"submit\" value=\"".NEW_ACTOR."\"><\n";  
      print "</form>\n";
    ?>
    senza nessun problema, il fattaccio aime si verifica quando vado a cliccare sul tasto aggiorna del browser infatti mi chiede se voglio reinviare i dati e per questo motivo me li reinserisce
    lasciando stare le soluzioni come... di verifica se ce o meno il record registrato etc
    mi chiedevo come posso fare subito dopo aver inviato i dati a cancellarli alla successiva riappariazione del modulo per l'inserimento
    Falc©NET
    __________________
    http://falco.ilbello.com - Il Mio Sito Personale
    http://bandalarga.ilbello.com - Monitoraggio Della Banda Larga Italiana

  2. #2
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Puoi fare in modo che tra l'inserimento dei dati e la visualizzazione del form ci sia uno "step" in più (tipo il classico messaggio "i campi sono stati compilati, attendere prego..." come dopo aver scritto un messaggio sul forum).
    In pratica fai visualizzare al browser una pagina intermedia nella quale fare un redirect al form dopo qualche secondo.
    Ciao
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  3. #3
    Originariamente inviato da Sky
    Puoi fare in modo che tra l'inserimento dei dati e la visualizzazione del form ci sia uno "step" in più (tipo il classico messaggio "i campi sono stati compilati, attendere prego..." come dopo aver scritto un messaggio sul forum).
    In pratica fai visualizzare al browser una pagina intermedia nella quale fare un redirect al form dopo qualche secondo.
    Ciao
    parlando + tecnicamente (codice) come fare ?
    Falc©NET
    __________________
    http://falco.ilbello.com - Il Mio Sito Personale
    http://bandalarga.ilbello.com - Monitoraggio Della Banda Larga Italiana

  4. #4
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Io sfrutterei la querystring per effettuare un refresh sulla stessa pagina.
    Butto giù una bozza di codice:

    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";
    ?>
    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.
    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
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  5. #5
    qualcuno conosce altri metodi in pure php ?
    Falc©NET
    __________________
    http://falco.ilbello.com - Il Mio Sito Personale
    http://bandalarga.ilbello.com - Monitoraggio Della Banda Larga Italiana

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.