• User Attivo

    ricaricare pagina e mantenere dati da post

    ciao a tutti, mi stavo ponendo un problema: in una pagina io ho riportato dei dati tramite post e me li visualizza regolarmente. Il fatto è che dopo la visualizzazione, ho messo un form con l' "onchange" e il php self, una cosa del tipo:

    [php]
    echo "<form name='ciao'>";
    echo '<select name="voci3" onchange="this.form.submit()">';
    echo '<option value=""></option>';
    $voci = "SELECT * FROM voci order by selez_voci";
    $voci2 = mysql_query($voci,$connessione);
    while($voci3 = mysql_fetch_array($voci2))

    {
    echo "<option value='". $voci3['selez_voci'] ."' ". ($_POST['voci3'] == ($voci3['selez_voci']) ? "selected='selected'" : "") .">". $voci3['selez_voci'] ."</option>";
    }
    echo ' </select>';
    print @$_POST['voci3'] ;
    //echo ' <br>';
    ?>
    </p>
    <br><br><br><br><br><br><br><br><br><br><br><br>
    <input type="submit" value= "calcola">
    </form>
    [/php]

    Il problema è che quando io seleziono una voce dalla select e me la faccio stampare, la pagina perde i dati che avevo in cima e che appunto erano recuperati tramite post da una precedente pagina.
    In che modo posso risolvere la cosa?
    Grazie a tutti


  • Consiglio Direttivo

    Ciao maubox8
    potresti inserire degli hidden data in questo form che contengono il valore che ti serve, così te lo recuperi nuovamente al nuovo submit 😉


  • User Attivo

    ciao Samyorn, grazie per il consiglio, e scusami se ti chiedo sempre qualcosa, è che vorrei imparare a capire.. in che punto dovrei metterlo del form? Ad esempio: io ho le 2 variabili richiamate in post da una precedente pagina:

    [php]
    $ditta= $_POST['ditta'];
    $dipe= $_POST['dipe'];//questo richiama un numero univoco dal database
    [/php]

    poi ho 2 query per selezionare alcuni dati:

    [php]

    //query per i dati dell'azienda

    $query="SELECT * FROM tbl_users WHERE user_name='".$_SESSION['logged'][0]."'" ;
    $result = mysql_query($query,$connessione);
    $row = mysql_fetch_array($result);
    $userid = $row[0];
    //print "id_utenteee "."$userid"; //POSSIAMO ANCHE NON STAMPARLO

    //select azienda

    $azie = "SELECT * FROM anag_ditta WHERE ragione_sociale= '$ditta'";
    $result = mysql_query($azie,$connessione);
    while($dittaa = mysql_fetch_array($result))
    print "indirizzo: ".$dittaa['indirizzo']."<br>"."sede leg :".$dittaa['sede_legale']."<br>"."cod fisc: ".$dittaa['codice_fiscale']."<br>"."part iva: ".$dittaa['partita_iva']."</p>";

    //select dipe

    echo "<br>";
    $dipendente = "SELECT * FROM anag_dip WHERE id_utente = '$userid ' and user_id = '$dipe'";
    $result2 = mysql_query($dipendente,$connessione);
    while($ue = mysql_fetch_array($result2))

    print "<p class='dip'>"."dip: "."<br>".$ue['cognome']."&nbsp".$ue['nome']."&nbsp"."matr: ".$ue['matr']."<br>".$ue['indirizzo']."<br>".$ue['cap']."&nbsp". $ue['citta_residenza']."<br>".$ue['codice_fiscale']."</p>";
    }

    [/php]

    e poi ho un form i cui dati si ricaricano e qui metterei gli hidden ma non funzionano:

    [php]<form name="cedol" method="post" action='<?php echo $_SERVER["PHP_SELF"] ?> '>
    <?php
    //METTO PRIMA IN HIDDEN 2 VARIABILI
    echo "<input type="hidden" name="$ditta" value="". $ditta."">";
    echo "<input type="hidden" name="$dipe" value="". $_POST['dipe']."">";

    ?>[/php]

    il form con l'onchange si trova piu' sotto invece e sarebbe fatto così:

    [php]
    echo "<form name='ciao'>";
    echo '<select name="voci3" onchange="this.form.submit()">';
    echo '<option value=""></option>';
    echo '<br>';
    $voci = "SELECT * FROM voci order by selez_voci";
    $voci2 = mysql_query($voci,$connessione);
    while($voci3 = mysql_fetch_array($voci2))
    //echo $voci3['selez_voci'].'<br>';

    {
    echo "<option value='". $voci3['selez_voci'] ."' ". ($_POST['voci3'] == ($voci3['selez_voci']) ? "selected='selected'" : "") .">". $voci3['selez_voci'] ."</option>";
    }
    echo ' </select>';
    echo ' <br>';
    print @$_POST['voci3'] ;[/php]


  • Consiglio Direttivo

    devi metterlo nel form con l'onchange perch'è in quello che fai il submit 😉
    ma devi scriverli in maniera diversa:
    [php]<input type="hidden" name="ditta" value="<? echo $ditta; ?>">
    <input type="hidden" name="dipe" value="<? echo $dipe ?>">[/php]
    Vedi se funge così 😉


  • User Attivo

    :bho:
    Ho provato, ma non mi da niente; ho provato anche a mettere una prova di stampa ma niente.
    Io lo avrei messo così:

    [PHP]?>
    <form name="form3" method="post" action='<?php echo $_SERVER["PHP_SELF"] ?>'>
    <?php
    echo '<select name="voci3" onchange="this.form.submit()">';
    echo '<option value=""></option>';
    echo '<br>';
    $voci = "SELECT * FROM voci order by selez_voci";
    $voci2 = mysql_query($voci,$connessione);
    while($voci3 = mysql_fetch_array($voci2))
    //echo $voci3['selez_voci'].'<br>';
    {
    echo "<option value='". $voci3['selez_voci'] ."' ". ($_POST['voci3'] == ($voci3['selez_voci']) ? "selected='selected'" : "") .">". $voci3['selez_voci'] ."</option>";
    }
    echo ' </select>';
    ?>
    <input type="hidden" name="ditta" value="<? echo $ditta; ?>">
    <input type="hidden" name="dipe" value="<? echo $dipe ?>">
    <?php
    echo ' <br>';
    //print @$_POST['voci3'] ;
    echo ' <br>';
    echo "prova stampa: ".$dipe;
    ?>

    </p>
    <br><br><br><br><br><br><br><br><br><br><br><br>
    <input type="submit" value= "calcola">
    </form>[/PHP]

    considera che prima ci sono anche altri form che hanno il php self come action, ma sono altri dati che per ora non mi servono


  • Consiglio Direttivo

    hai provato a controllare l'HTML della pagina per verificare che non ci sia qualcosa che non va?


  • User Attivo

    ok, ci do un'occhiata... Grazie, potrebbe essere il tag body?
    Ho lievi carenze in html. Devo ripassarmele...


  • User Attivo

    ho visto l'html, ma dovrebbe essere a posto...non ci sto capendo piu' niente... forse sto andando troppo di fretta nella scrittura di codici php...
    :bho:


  • Consiglio Direttivo

    intanto vedo un errorino fatto da me 😄
    manca il ; dopo $dipe 😄


  • User Attivo

    si lo so, l'ho visto e anche corretto ma non va lo stesso. Forse non ho bene in mente come funziona l'onchange...
    Ti posterei il codice intero ma mi sa che è un po' lunghetto.
    Se no provo un'altra strada...


  • User Attivo

    ok ne sto provando un'altra. Anzichè passare ad una pagina successiva rimango sulla stessa e una volta selezionata la seconda onchange metto la condizione che mi stampi tutto un form... :mmm:
    va be', poi se mai ti faccio vedere...
    Ciao e grazie ancora!