Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di MM88
    Registrato dal
    Jun 2003
    Messaggi
    567

    Dati MySQL in un Form Select

    Ciao, vorrei far confluire alcuni dati presenti in una tabella di mysql in un menu SELECT

    Nella tabella sono presenti id, nome, link, genere (m/f = 1/0)

    Vorrei che dopo la query la selezione dividesse nel menu select i maschi dalle femmine (1/0) e che sotto l'optgroup menu maschi andassero tutti i nomi con 1 (m) e sotto il l'optgroup menu femmine andassero tutti i nomi con lo 0 (f), ottenendo una cosa del genere:

    codice:
    <form name="form4" method="post" action="" id="form4">
      
    
     
        <select name="select" id="select" size="1">
          <option value="" selected id="selezionato">MENU</option>
          <optgroup class="opt1" label="Maschi"> 
          <option value="link">Mario Rossi</option>
          <option value="link">Giovanni Verde</option>
          <option value="link">Stefano Giallo</option>
          </optgroup>
          <optgroup class="opt2" label="Femmine"> 
           <option value="link">Maria Rossi</option>
          <option value="link">Giovanna Verde</option>
          <option value="link">Stefania Giallo</option>
          </optgroup>
        </select>


    Vorrei inoltre che selezionando un dato nome il browser si spostasse verso il link di riferimento (pagina della persona) .


    GRAZIE a chiunque mi possa aiutare

  2. #2
    Select id, nome, link genere
    from tabella
    order by genere, nome;

    con questa query hai un recordset ordinato per sesso. Fai un controllo sui sessi, quando questo campia stampi un optgroup!

    Ogni riga sarà:

    <option value=' $rstLink' >$rstNoME</option>
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  3. #3
    Utente di HTML.it L'avatar di MM88
    Registrato dal
    Jun 2003
    Messaggi
    567
    Ciao, grazie per la risposta sei stato gentilissimo.

    Ma quale controllo uso per inserire il secondo optgroup?

    IF e CASE non mi sembrano le soluzioni adeguate.


    grazie

  4. #4
    $iControl=-1;

    while (ciclo del record set){

    if ($iControl==$iSex){
    stampa optgroup
    }


    $iControl=$iSex;
    }
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  5. #5
    Utente di HTML.it L'avatar di MM88
    Registrato dal
    Jun 2003
    Messaggi
    567
    Grazie per la risposta, ma - in questa maniera - mi inserisce l'optgroup per ogni riga corrispondente al sesso femminile (1).

    Invece l'optgroup dovrebbe comparire una sola volta e, sotto, tutti nomi corrispondenti all'optgroup in questione.


    grazie

  6. #6
    scusami il controllo è if != non if ==
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  7. #7
    Utente di HTML.it L'avatar di MM88
    Registrato dal
    Jun 2003
    Messaggi
    567
    Niente, mi mette solo il primo dentro i maschi, il resto lo mette tutto nelle femmine.

    Ecco il codice, sicuramente ho intepretato male il tuo suggerimento:

    codice:
    echo "<select name=\"select\" id=\"select\" size=\"1\"><option value=\"\" selected>SCEGLI</option>";
        echo "<optgroup class=\"opt1\" label=\"Maschi\">";	  
     
    $iControl=Femmine;
    
    	while ($row = mysql_fetch_object($result)){
            echo "<option value=\"$row->link\">$row->pagina</option>\n";
    		  
            if ($iControl != Femmine){
    	echo "<optgroup class=\"opt2\" label=\"Femmine\">";	 
    	}
    
    
    	$iControl=Femmine;
    	
    		 }

    grazie ancora

  8. #8
    cosa è femmine? posta + codice!!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  9. #9
    Utente di HTML.it L'avatar di MM88
    Registrato dal
    Jun 2003
    Messaggi
    567
    Ma la routine è solo quella.

    "Femmine" corrisponde a quello che avevi chiamato $iSex.

    Cerco di chiarire la cosa: Un campo della tabella mysql è il genere (maschi e femmine).

    Con la query ottengo tutti i nomi ordinati per genere, prima tutti i maschi e poi tutte le femmine.

    Ora rimane il problema di inserire nel menu a tendina prima tutti i nomi dei maschi sotto <optgroup class=\"opt1\" label=\"Maschi\"> e, appena si incontra la prima riga con genere "femmina", la routine dovrebbe stampare <optgroup class=\"opt2\" label=\"Femmine\"> e far seguire il nome di tutte le donne.


    grazie

  10. #10
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
    echo "<select name=\"select\" id=\"select\" size=\"1\"><option value=\"\" selected>SCEGLI</option>";
        echo 
    "<optgroup class=\"opt1\" label=\"Maschi\">";      
     
    $iControl=1;
                
        while (
    $row mysql_fetch_object($result))
              {
              
    $grp"<option value=\"$row->link\">$row->pagina</option>\n";  
              if (
    $row->genere != $iControl)
                {
                
    $grp"<optgroup class=\"opt2\" label=\"Femmine\">";
                
    $iControl=$row->genere;
                }
              echo 
    $grp;
              } 
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.