• User Attivo

    Ciclo while e sessione

    Ho cercato e ricercato nel forum ma non ho trovato soluzione ad un mio problema:

    ho un bel ciclo while.
    ad ogni iterazione di questo ciclo vorrei salvare nella sessione alcuni dati.

    Ovviamente, alla fine delle iterazioni mi viengono salvate nella sessione solo i dati dell'ultima iterazione.

    Come posso fare?

    (a dir la verità vorrei inserire un form per poter passare dati ad una pagina successiva, ma anche in questo caso mi vede solo l'ultima iterazione!!!)

    Spero di essermi espresso bene....

    :yuppi::yuppi::yuppi::yuppi:


  • Consiglio Direttivo

    Ciao Rinino
    potresti specificare cosa passa nel tuo while e cosa vorresti far memorizzare ad ogni ciclo?


  • User Attivo

    Ciao Samyorn...

    
    
    <form method="post" action="personale/ins/corso.php" id="<?php echo "form".$i ?>">
                <p>Corso di laurea: <a href="#" onClick="document.getElementById('<?php echo "form".$i ?>').submit();"><?php echo $row[1]?></a></p>
                <p><input type="hidden" value="<?php echo $row[0]; ?>" name="c_l" /></p>
                <p><input type="hidden" value="<?php echo $annoA; ?>" name="a_l" /></p>
    </form>            
    
    
    ```Questo è il form che viene eseguito ad ogni ciclo...
    
    per spiegarti il ciclo dovrei mandarti dei file, facciamo prima!
    Cmq hai qualche idea?

  • Consiglio Direttivo

    Se questo è all'interno del ciclo significa che ti crea *n *form per n cicli che compie il while :mmm:

    Ancora non comprendo il tuo problema :mmm:


  • User Attivo

    Ho cambiato ciclo, usando il for...

    Ora ti posto il codice:

    
    <?php                                                            
        require 'includes/query_princ.php';
        $qp = new query_princ();
        $resAnno = $qp ->query_corsi_laurea();
        
        
    /*    $queAnno = "select jos_insegnamento.anno, count(*) from jos_insegnamento
                    group by jos_insegnamento.anno
                    order by jos_insegnamento.anno desc";
    */
        
        for($j=0;$j<$rowAnno = mysql_fetch_row($resAnno);$j++){
            $annoA = $rowAnno[0];
            $anno_inc = $annoA+1;
    
     ?>    
          <h3>Anno Accademico <?php echo $annoA?> - <?php echo $anno_inc?></h3>
            <div>
            <?php            
                $que = "select jos_corso_laurea.id, jos_corso_laurea.nome_corso from jos_insegnamento join jos_corso_laurea
                        on jos_insegnamento.id_corso_laurea = jos_corso_laurea.id
                        where jos_insegnamento.anno =$annoA
                        group by jos_corso_laurea.nome_corso
                        order by jos_corso_laurea.nome_corso";
                
                $res = mysql_query($que, $conn)
                or die("Si è verificato un errore: " . mysql_error() );
                            
                
                for($i=0; $i<$row = mysql_fetch_row($res); $i++){
            ?>
                <form method="post" action="personale/ins/corso.php" id="<?php echo "form".$i ?>">
                <p>Corso di laurea: <a href="#" onClick="document.getElementById('<?php echo "form".$i ?>').submit();"><?php echo $row[1]?></a></p>
                <p><input type="hidden" value="<?php echo $row[0]; ?>" name="c_l" /></p>
                <p><input type="hidden" value="<?php echo $annoA; ?>" name="a_l" /></p>
                </form>                
        
                
          <?php    
                }
                echo("<p>--------------------------------------------------------------</p>");
                echo("</div>");
                }
          ?>
    
    

    questo è tutto il file...
    Con il ciclo for funziona in parte...non capisco perchè!


  • Consiglio Direttivo

    cosa ti funziona in parte? ovvero, cosa non ti fa vedere che invece dovrebbe?
    Hai provato a vedere l'HTML della pagina che ti restituisce?


  • User Attivo
    
    <h3>Anno Accademico 2007 - 2008</h3>
    	<div>				
    	<form method="post" action="personale/ins/corso.php" id="**form0**">
                <p>Corso di laurea: <a href="#" onClick="document.getElementById('**form0**').submit();">Enologia</a></p>
                <p><input type="hidden" value="4" name="c_l" /></p>
                <p><input type="hidden" value="2007" name="a_l" /></p>
    	</form>				
    	
    	<form method="post" action="personale/ins/corso.php" id="**form1**">
                <p>Corso di laurea: <a href="#" onClick="document.getElementById('**form1**').submit();">Scienze e tecnologie alimentari</a></p>
                <p><input type="hidden" value="3" name="c_l" /></p>
                <p><input type="hidden" value="2007" name="a_l" /></p>
    	</form>				
    	
    	<form method="post" action="personale/ins/corso.php" id="**form2**">
                <p>Corso di laurea: <a href="#" onClick="document.getElementById('**form2**').submit();">Scienze Forestali</a></p>
                <p><input type="hidden" value="5" name="c_l" /></p>
                <p><input type="hidden" value="2007" name="a_l" /></p>
    	</form>				
    	
    			
          <p>--------------------------------------------------------------</p></div>	
    	  <h3>Anno Accademico 2006 - 2007</h3>
           <div>
    
    	<form method="post" action="personale/ins/corso.php" id="**form0**">
                <p>Corso di laurea: <a href="#" onClick="document.getElementById('**form0**').submit();">Enologia</a></p>
                <p><input type="hidden" value="4" name="c_l" /></p>
                <p><input type="hidden" value="2006" name="a_l" /></p>
    	</form>								
          <p>--------------------------------------------------------------</p>
         </div>	
          <h3>Anno Accademico 2005 - 2006</h3>
          <div>		
    	<form method="post" action="personale/ins/corso.php" id="**form0**">
                <p>Corso di laurea: <a href="#" onClick="document.getElementById('**form0**').submit();">Scienze e tecnologie alimentari</a></p>
                <p><input type="hidden" value="3" name="c_l" /></p>
                <p><input type="hidden" value="2005" name="a_l" /></p>
    	</form>								
          <p>--------------------------------------------------------------</p></div>
    </div>
    
    

    Se solo gli ultimi 2 id form fossero diversi...dovrebbe funzionare tutto!


  • User Attivo

    Ho risolto:

    
    <?php
    for($i=0; $i<$row = mysql_fetch_row($res); $i++){
                    **$count++**;
    ?>
    
    <form method="post" action="personale/ins/corso.php" id="<?php echo "**form".$i+$count**?>">
                <p>Corso di laurea: <a href="#" onClick="document.getElementById('<?php echo "form".**$i+$count** ?>').submit();"><?php echo $row[1]?></a></p>
                <p><input type="hidden" value="<?php echo $row[0]; ?>" name="c_l" /></p>
                <p><input type="hidden" value="<?php echo $annoA; ?>" name="a_l" /></p>
                </form>        
    
    
    ```Ma onestamente non so perchè funziona...avevo intuito che l'id del form avesse un ruolo, ma onestamente non so quale!
    
    Cmq una volta passati i dati alla pagina successiva, posso salvarli nella sessione, e una volta tornati nella pagina coi form resettare la sessione?
    
    poichè nella mia applicazione, più in là, c'è lo stesso problema(oramai risolto..) perchè devo usare dei dati avanti e indietro per molte pagine.
    Solo che non so dove e quando toglierli dalla sessione!!!!

  • Consiglio Direttivo

    metti il ; alla fine della stringa php

    [php].....id="<?php echo "form".$i; ?>">..[/php]

    vedi se va ora 😉


  • Consiglio Direttivo

    @Rinino said:

    Cmq una volta passati i dati alla pagina successiva, posso salvarli nella sessione, e una volta tornati nella pagina coi form resettare la sessione?

    Basta che distruggi la sessione quando ricarichi la pagina dei form 😉


  • User Attivo

    ma visto che anche un utente loggato potrebbe visitare queste pagine, non rischio di distruggere anche la sua di sessione e "cacciarlo" dal sito?


  • Consiglio Direttivo

    si, allora nell'altra pagina risetterai il valore della sessione senza fare il destroy 😉


  • User Attivo

    ok, domani ci provo!!!!
    Ti farò sapere!