Salve a tutti.
Avrei bisogno di una guida più esperta di me su un problema che non riesco a risolvere.
Ho tre file:
1) studenti.php, che è una sorta di database e contiene un elenco (in array) di studenti, con relativi nomi e numeri di matricola;
2) visualizza_studenti.php, dove viene stampato a video l'elenco studenti, assieme alle caselle di input (radiobutton, caselle di testo, ecc..) di un form che permette di modificare i parametri (la media voti, per esempio) di ogni studente;
3) verifica.php, che riceve le variabili appena passate tramite metodo post dal file precedente e va a scriverle in un quarto file (db.php).
Il file studenti.php si presenta così
Codice PHP:
<?php
$studente[] = "Marco Arancio|1234|1980";
$studente[] = "Mario Verdi|2345|1980";
$studente[] = "Gino Rossi|3456|1981";
$studente[] = "Lucio Neri|4567|1981";
?>
Il file visualizza_studenti.php, come già accennato, serve ad inserire voti e altre notizie sugli studenti. Ecco il codice di visualizza_studenti.php:
Codice PHP:
<?php
require("studenti.php");
fopen("studenti.php");
$conta_studente = count($studente);
echo = "<form name='GestioneStudenti' method='post' action='verifica.php' id='GestioneStudenti'>".
#### eseguo un ciclo for per estrarre i dati dagli array ####
###### quindi scompongo ogni array in 3 variabili ######
for($a = 0; $a < $conta_studente; a++){
list($nome, $matricola, $anno_nascita) = explode("|", $studente[$a]);
// adesso subordino la scelta degli studenti al loro anno di nascita
// quindi stampo a video i nomi e i campi di input
if($anno_nascita === "1980"){
echo "$nome $matricola <input type='text' name='voto'> ".
"<input type='radio' checked value='NO' name='ordinamento'> ".
"Nuovo Ordinamento <input type='radio' value='VO' name='ordinamento'> ".
"Vecchio Ordinamento
";
}
}
echo "<input type='submit' name='Invia' value='Invia'>".
"</form>";
?>
Inserendo poi degli input di tipo "hydden", potrei passare a verifica.php anche le variabili $nome, $matricola e $anno_nascita. Ma non so materialmente come fare, perché c'è qualche intoppo per strada: visualizza_studenti.php usa un ciclo for perché l'elenco studenti potrebbe essere virtualmente infinito, quindi devo avere una gestione necessariamente dinamica degli array e il ciclo mi risolve il problema.
Però quando vado a passare le variabile tramite $_POST al file verifica.php viene passato solo l'ultimo valore $voto e $ordinamento.
Ho provato anche con le funzioni serialize e unserialize, come avevo letto in un altro post del forum, ma non ho risolto nulla. Evidentemente mi sfugge la soluzione.
Come posso risolvere?
Grazie in anticipo