- Home
- Categorie
- Coding e Sistemistica
- PHP
- Ciclo while e sessione
-
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....
-
Ciao Rinino
potresti specificare cosa passa nel tuo while e cosa vorresti far memorizzare ad ogni ciclo?
-
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?
-
Se questo è all'interno del ciclo significa che ti crea *n *form per n cicli che compie il while
Ancora non comprendo il tuo problema
-
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è!
-
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?
-
<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!
-
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!!!!
-
metti il ; alla fine della stringa php
[php].....id="<?php echo "form".$i; ?>">..[/php]
vedi se va ora
-
@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
-
ma visto che anche un utente loggato potrebbe visitare queste pagine, non rischio di distruggere anche la sua di sessione e "cacciarlo" dal sito?
-
si, allora nell'altra pagina risetterai il valore della sessione senza fare il destroy
-
ok, domani ci provo!!!!
Ti farò sapere!