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

    Integrazione da file di testo in drop-down list

    Salve a tutti. Questo è il mio primo messaggio e subito vi pongo una mia problematica
    Riguarda un problema di gestione delle assenze di una scuola, da sviluppare in php . La commissione che ho è quello di permettere ad un addetto di inserire giornalmente le assenze di ogni classe. Diciamo che ho chiara l'idea di cio che fare, ma mi sfuggono alcune cose.
    Come posso creare una drop-down list (ovvero con il tag <select>) in modo tale:
    1) Seleziono Classe (opzioni prese dalle classi presenti nel file .txt)
    2)Apparizione seconda drop-down list( come faccio comparire conseguenzialmente alla scelta del primo select un altro menu a tendina tale da contenere il nome degli allunni relativi a quella classe ? )

    questo è il codice che ho sviluppato per elencare le varie classi:
    codice:
    	//Procedura apertura File
    	$file ="Classi_assenze.txt";
    	if(file_exists("$file"))
    	{
    		$id_file=fopen($file,"r");
    		if(!$id_file)
    			die("Impossibile aprire $file");
    	}
    	else
    	{
    		echo"Il file $file non esiste";
    	}//Fine Procedura apertura File
    	//Creazione Menu di scelta classe
    	echo"		 
    	 <fieldset>
    	 	<legend>Classe</legend>
    			<select name=classe>";
    			while(!feof($id_file))
    			{
    				$classe_letta=fgets($id_file, 4096); //leggo riga per riga
    				//Per riconoscere la classe basterà riconoscere i caratteri che precedono ogni classe impostati a "**"
    				if (strstr($classe_letta,"**")) 
    				{
    					$stringa_classe = substr($classe_letta,2,2); //Estrapolo le due lettere successive ai due asterischi
    					echo"<option>$stringa_classe</option>"; //Inserisco la classe estrapolata dalla lettura della riga nel menù di scelta
    				}
    			}		
    	echo"</select></fieldset>"; //Fine Creazione Menù di scelta
    	fclose(!$id_file);
    il file di testo diciamo che è strutturato il questo modo:
    codice:
    **classe
    alunno1
    alunno2
    ...
    **classe
    alunno1
    alunno2
    ...
    **classe
    alunno1
    alunno2
    ...
    Accetto consigli anche su come è meglio gestire i file di test, se crearne altri ecc.
    Quindi la mia problema ripetendola è: Come creo una seconda drop-down list dopo aver scelto la classe dalla prima drop-down list ?

  2. #2
    se vuoi ottenere una seconda dropdown a seconda del valore preso dalla prima devi usare ajax.

    una cosa che nn capisco è perchè usi semplic file di testo.
    nn sarebbe più facile con un db?

  3. #3
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Per le select devi usare javascript... dai un'occhiata a jquery che ti permette di essere "operativo" in poco tempo... sia perchè semplice sia perchè troverai sicuramente un plugin/script che fa al caso tuo.

    Per quanto riguarda i file di testo... perchè non usi un database o eventualmente un file xml?
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  4. #4
    Utilizzo un file di testo perche cosi ha voluto il docente !!! Gia ho utilizzato i DB infatti li sarebbe stato molto piu pratico... è che avendo la verifica la settimana prossima sui file di testo non posso altro che farlo cosi !
    Con il Ajax cos'è che devo vedere in particolare ?

  5. #5
    Ragazzi ho pensato di fare in questo modo, creare una funzione da chiamare al momento del click di un opzione del menu. questo è il codice:

    codice:
    <?php
    	function alunni($stringa_classe)
    	{
    		$file ="Classi_assenze.txt";
    		if(file_exists("$file"))
    		{
    			$id_file=fopen($file,"r");
    			if(!$id_file)
    				die("Impossibile aprire $file");
    		}
    		else
    		{
    			echo"Il file $file non esiste";
    		}//Fine Procedura apertura File
    		//Creazione Menu di scelta classe
    		echo"		 
    	 		<fieldset>
    	 		 <legend>Alunni</legend>
    			  <select name=classe>";
    			  while(!feof($id_file))
    			  {
    				$classe_letta=fgets($id_file, 4096);
    				if (strstr($classe_letta,"**")) 
    				{
    					if(substr($classe_letta,2,2)==$stringa_classe)
    					{
    						while(strstr($lettura,"**"))
    						{
    							$lettura = fgets($id_file, 4096);
    							echo"<option name=$lettura value=$lettura>$lettura</option>";
    						}
    					}
    					
    				}
    			  }
    			echo"</select></fieldset>"; //Fine Creazione Menù di scelta
    			fclose(!$id_file);
    	}
    	
    	//Procedura apertura File
    	$file ="Classi_assenze.txt";
    	if(file_exists("$file"))
    	{
    		$id_file=fopen($file,"r");
    		if(!$id_file)
    			die("Impossibile aprire $file");
    	}
    	else
    	{
    		echo"Il file $file non esiste";
    	}//Fine Procedura apertura File
    	//Creazione Menu di scelta classe
    	echo"		 
    	 <fieldset>
    	 	<legend>Classe</legend>
    			<select name=classe onchange=alunni($stringa_classe)>";
    			while(!feof($id_file))
    			{
    				$classe_letta=fgets($id_file, 4096); //leggo riga per riga
    				//Per riconoscere la classe basterà riconoscere i caratteri che precedono ogni classe impostati a "**"
    				if (strstr($classe_letta,"**")) 
    				{
    					$stringa_classe = substr($classe_letta,2,2); //Estrapolo le due lettere successive ai due asterischi
    					echo"<option name=$stringa_classe>$stringa_classe</option>"; //Inserisco la classe estrapolata dalla lettura della riga nel menù di scelta
    				}
    			}		
    	echo"</select></fieldset>"; //Fine Creazione Menù di scelta
    	fclose(!$id_file);
    ?>
    l'unica cosa è che a quanto pare la funzione non viene richiamata quando scelgo un elemento !...cos'è che sbaglio ?

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.