Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    problema campo hidden di un form e aggiornamento pagina

    Ciao,

    vi posto l'esempio perchè da spiegare non è semplice...

    Codice PHP:
    <form name="form" method="post" action="<?PHP $_SERVER['SCRIPT_NAME'];?>">

    <select class="medium" name="marca" id="a24" onfocus="sel('a24')" onblur="des('a24')" onchange="submit()" size="1">
    <option value="">SELEZIONA</option>
    <option value=""></option>
    <option value="1" <?PHP if($_POST['marca'] == '1'){echo"selected";}?>>FIAT</option>
    <option value="2" <?PHP if($_POST['marca'] == '2'){echo"selected";}?>>AUDI</option>
    <option value="3" <?PHP if($_POST['marca'] == '3'){echo"selected";}?>>...</option>
    <option value="4" <?PHP if($_POST['marca'] == '4'){echo"selected";}?>>...</option>
    </select>
    </form>

    <form name="form2" method="post" action="<?PHP $_SERVER['SCRIPT_NAME'];?>">

    <select class="short" name="taglia" id="a25" onfocus="sel('a25')" onblur="des('a25')" size="1">
    <?php
    $query 
    "SELECT descrizione FROM modello WHERE fascia=$_POST[marca]";
    $result mysql_query($query);
    while (
    $list mysql_fetch_array($result)) {
    echo 
    "<option value=\"$list[descrizione]\">$list[descrizione]</option>";
    }
    ?>
    </select>

    [b]<input type="hidden" name="fn" value="INS">[/b]

    ....submit

    </form>


    switch ($_POST['fn']) {

            case "INS":

            $sql="INSERT INTO .....

                    echo "Inserimento OK";

            break;

            }
    Il probblema è che se dopo aver effettuato l'inserimento nel db faccio reload della pagina dal browser, la var fn mi restituisce ancora il valore INS e quindi rientra nel case...

    Ho provato a settarla a null, ma visto che è impostata hidden nel form non ci riesco.

    Avete qualche suggerimento per risolvere il problema?

    Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107
    prova a mettere le modifiche in rosso...

    if(isset($_POST['fn'])) {
    switch ($_POST['fn']) {

    case "INS":

    $sql="INSERT INTO .....

    echo "Inserimento OK";

    unset($_POST['$fn']);

    break;

    }
    }

  3. #3
    Purtroppo non risolve...

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107
    ma tu dopo il reload della pagina hai fatto di nuovo submit del secondo form?
    perchè in questo caso è logico che ti setta di nuovo la variabile $_POST['$fn']..
    purtroppo dal codice non si capisce molto di quello che vuoi fare o quello che vorresti ottenere...

  5. #5
    Cerco di spiegarmi meglio..

    Io faccio 2 form perchè è l'unico modo che conosco per collegare il risultato di due select box ,
    avrei voluto fare il reload di solo una parte della pagina, ma non conosco ajax... io compilo i campi della mio primo form, poi scelgo dalla select un valore, a questo punto mi si ricarica la pagina e con il valore dalla variabile delle prima select filtro i dati per la select del secondo form. A questo punto, clicco sul pulsante submit e carico i dati nel db. Mi esce il messaggio "dati caricati". Se a questo punto faccio il reload della pagina la var nascosta "fn" è settata e mi rientra nel ciclo case... Penso che fatta in questo modo il problema non sia risolvibile, purtroppo pero' non ho idea di come ottenere il medesimo risultato in altro modo.

    Grazie
    Ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107
    Penso di aver capito capito...usi due submit distinti per i due form, giusto?
    Ma perchè nel secondo form usi un <input> di tipo 'hidden' con value='INS' se il valore che passi è sempre lo stesso?
    in questo modo non serve a nulla, così come non serve lo switch, perchè ti basta verificare se è settata la variabile $_POST['taglia'].


    Codice PHP:
    <form name="form2" method="post" action="<?PHP $_SERVER['SCRIPT_NAME'];?>"> 
    <select class="short" name="taglia" id="a25" onfocus="sel('a25')" onblur="des('a25')" size="1"> <?php
    $query 
    "SELECT descrizione FROM modello WHERE fascia=$_POST[marca]";
    $result mysql_query($query);
    while (
    $list mysql_fetch_array($result)) {
      echo 
    "<option value=\"$list[descrizione]\">$list[descrizione]</option>";
    }
    ?>
    </select> 
    <button type='submit' name='invia'>invia</button>
    </form>  
    <?php
    if(isset($_POST['taglia'])) {
      
    $sql="INSERT INTO .....";
      
    $result mysql_query($sql);
      echo 
    "Inserimento OK";
      unset(
    $_POST['taglia']);
    }
    '>

  7. #7
    Mi ero perso in un bicchiere d'acqua..

    Grazie 1000!

    Ciao

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.