Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    107

    Si può mettere un "while" all'interno di un "for"?

    Ho bisogno di creare $numero campi "select" le cui opzioni siano estrapolate da un database.

    Per creare $numero campi "select" uso il seguente codice:
    codice:
    		for ($i=1; $i <= $numero; $i++)
    		print "<select style=\"width:200\" class=\"form\">\n</select>
    
    \n";
    Per creare un solo "select" le cui opzioni siano estrapolate dal database uso il seguente codice:
    codice:
    		while ($riga = mysql_fetch_array($tutto))	{print "<option value=\"{$riga['voce']}\"> {$riga['voce']}</option>\n";}
    In questo modo però o ho $numero campi select privi di opzioni, o ho un campo select con tutte le opzioni. Come posso fare per fonderli insieme?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    107
    Ho provato in quest'altro modo:

    codice:
    for ($i=1; $i <= $voci; $i++) 	{
    				print "<select style=\"width:200\" class=\"form\">\n";
    				while ($riga = mysql_fetch_array($tutto))	{print "<option value=\"{$riga['voce']}\"> {$riga['voce']}</option>\n";};
    				print "</select>
    
    \n";
    				};
    Così riesco ad impostare correttamente la prima voce, però non ripete il "while"... In pratica l'output HTML è il seguente:

    codice:
    <select style="width:200" class="form">
    <option value="1">1/option>
    <option value="2">2</option>
    </select>
    
    
    <select style="width:200" class="form">
    </select>
    
    
    <select style="width:200" class="form">
    </select>
    
    
    <select style="width:200" class="form">
    </select>

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    107
    Neanche così funza...

    codice:
    for ($i=1; $i <= $voci; $i++)	{
    				print "<select style=\"width:200\" class=\"form\">\n";
    				foreach (mysql_fetch_array($tutto) As $riga)	{print "<option value=\"$riga\"> $riga</option>\n";};
    				print "</select>
    
    \n";
    				};
    Questa volta l'HTML è davvero strano...

    codice:
    <option value="1"> 1</option>
    <option value="1"> 1</option>
    </select>
    
    
    <select style="width:200" class="form">
    <option value="2"> 2</option>
    <option value="2"> 2</option>
    </select>
    
    
    <select style="width:200" class="form">
    <option value="3"> 3</option>
    <option value="3"> 3</option>
    </select>

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    107
    Originariamente inviato da nicola75ss
    http://forum.html.it/forum/showthrea...elect+dinamici
    Se non ho capito male, in quel thread spieghi come ottenere le option da un database... Ma io questo lo so fare! Il mio problema è che anche il numero dei campi select è dinamico! Non riesco ad inserire un "dinamismo" dentro l'altro.

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Forse sono io che non ho capito il tuo problema.
    Ma anche se il numero di valori che costituisce la tua select è dinamico una volta che tramite la query li recuperi tutti, tutti faranno parte del menù a tendina.
    Scusami se ho capito male.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    107
    In teoria, in pratica non ci riesco e non capisco perché.

    Prendi il codice del mio secondo post, in teoria per ogni valore di "$i" compreso tra 1 e "$voci" dovrebbe ripetere tutto. Invece il while lo esegue solo la prima volta, per "$i" = 1, poi lo salta.

    Lascia perdere il mio terzo post... le sto provando tutte ma fa solo confusione.

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Scusa ma se dentro il ciclo for metti l'echo o il print anche della select otterrai tot tag select mentre select è una sola. Cambia il numero di option value.

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Io ti consiglio di adattare il tuo codice al 3d che ti ho segnalato.
    Una volta che usi il mysql_fetch_array non hai alcun bisogno del for prima.

  10. #10
    devi usare una funzione ricorsiva
    Ma sarà..... ma io ci credo poo....

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 © 2024 vBulletin Solutions, Inc. All rights reserved.