Visualizzazione dei risultati da 1 a 4 su 4

Discussione: php combobox dinamica

  1. #1
    Utente di HTML.it L'avatar di grendy
    Registrato dal
    Aug 2003
    Messaggi
    338

    php combobox dinamica

    Salve a tutti,
    ho una form con due combo,
    la prima combo la riempo con i valori di una query
    la seconda combo inzialmente è vuota.
    fin qui tutto bene
    la seconda combo va riempita, appena si seleziona qualcosa nella prima combo.

    questo è il difficile.

    qualche dritta?
    «Sono le azioni che contano. I nostri pensieri, per quanto buoni possano essere, sono perle false fintanto che non vengono trasformati in azioni. Sii il cambiamento che vuoi vedere avvenire nel mondo». (Mahatma Gandhi)

  2. #2
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Devi sempre prelevare i valori dal database?

    Comunque, dato che php non può gestire gli eventi, ti conviene fare un form e utilizzare l'evento onchange sul primo <select> in modo da fargli inviare automaticamente il form (alla stessa pagina) e così potrai sapere l'opzione del primo combo selezionata dall'utente.

  3. #3
    Utente di HTML.it L'avatar di grendy
    Registrato dal
    Aug 2003
    Messaggi
    338
    [supersaibal]Originariamente inviato da VaLvOnAuTa
    Devi sempre prelevare i valori dal database?

    Comunque, dato che php non può gestire gli eventi, ti conviene fare un form e utilizzare l'evento onchange sul primo <select> in modo da fargli inviare automaticamente il form (alla stessa pagina) e così potrai sapere l'opzione del primo combo selezionata dall'utente. [/supersaibal]
    onchange mi da errore
    e poi dato che non ho capito come popolare la combo2 a seconda della scelta sulla combo1, ho inserito una combo2 vuota e creo una combo3 con i risultati e nascondo la combo2 vuota.

    posto il codice va.

    Codice PHP:
    <html>
    <head>
        <title>comuni italiani</title>
        <?php require_once("config.php"?>
    </head>
    <body>
      <form>
          <div id="divProvince">
            <select size="1" style="width:180px;"  name="cboProvince" id="comboProvince"
             onchange="mostraComuni(cboProvince.value);" >
              <option selected value="( nulla ) nulla ">
                <ID id= no_option>- Seleziona la Provincia -</ID></option>
              <option value="( Altro ) Altro ">
                <ID id= option000>- Altro -</ID></option>
        <?php
        
    // global variable
        
        
    function mostraComuni($zone_code) {
           
    // nasconde divnulla o dovaltro e visualizza divComune
           // la parte che nasconde non l'ho ancora fatta
           
    $strsql "select * from zones ";
           
    $strsql .= "where zone_country_id = '105' and zone_provincia = '0' ";
           
    $strsql .= "and zone_code = '" $zone_code "' ";
           
    $strsql .= "order by zone_name asc";

           
    $comuni mysql_query($strsql$db);
           
    $record mysql_num_rows($comuni);

           if (
    $record != ) {
              
    $o 0;
              while(
    $arr_comuni mysql_fetch_array($comuni)){
                
    $o +=1;
                echo 
    "<div style=\"display:block;\" id=\"div";
                echo 
    $arr_comuni['zone_name'] . "\"> \n";
                echo 
    "  <select size=\"1\" style=\"width:180px;\"";
                echo 
    " name=\"cbo" $arr_comuni['zone_name'];
                echo 
    " id=\"combo" $arr_comuni['zone_name'] . "\"> \n";
                echo 
    "    <option value=\"(" $arr_comuni['zone_code'] . ") ";
                echo 
    $arr_comuni['zone_name'] . "\">";
                if (
    $o 10) {
                    echo 
    "<ID id= option00" $o ">";
                    echo 
    $arr_comuni['zone_name'] . "</ID></option> \n";
                } 
    // end if
                
    if (($o >= 10) && ($o 100)) {
                    echo 
    "<ID id= option0" $o ">";
                    echo 
    $arr_comuni['zone_name'] . "</ID></option> \n";
                }  
    // end if
                
    if ($r >= 100) {
                    echo 
    "<ID id= option" $o ">";
                    echo 
    $arr_comuni['zone_name'] . "</ID></option> \n";
                }  
    // end if
                
    echo "  </select>";
                echo 
    "</div>";
              } 
    // end while
           
    }  // end if
        
    }  // end function

        
    $strsql "select * from zones ";
        
    $strsql .= "where zone_country_id = '105' and zone_provincia = '1' ";
        
    $strsql .= "order by zone_name asc";

        
    $province mysql_query($strsql$db);
        
    $record mysql_num_rows($province);
        
        if (
    $record != ) {
            
    $o 0;
            while(
    $arr_province mysql_fetch_array($province)){
                
    $o +=1;
                echo 
    "<option value=\"" $arr_province['zone_code'] . "\">";
                if (
    $o 10) {
                    echo 
    "<ID id= option00" $o ">";
                    echo 
    $arr_province['zone_name'] . "</ID></option> \n";
                } 
    // end if
                
    if (($o >= 10) && ($o 100)) {
                    echo 
    "<ID id= option0" $o ">";
                    echo 
    $arr_province['zone_name'] . "</ID></option> \n";
                }  
    // end if
                
    if ($o >= 100) {
                    echo 
    "<ID id= option" $o ">";
                    echo 
    $arr_province['zone_name'] . "</ID></option> \n";
                }  
    // end if
            
    // end while
        
    }  // end if
        
    ?>
            </select>
          </div>

          <div style="display:block;" id="divnulla">
            <select size="1" style="width:180px;"  name="cboNulla" id="comboNulla">
            </select>
          </div>

          <div style="display:none;" id="divAltro">
            <input size="50" style="width:180px;" type="text" name="txtAltro" id="textAltro">
          </div>
      </form>
    </body>
    </html>

    il codice per nascondere la combo2 vuota ancora non l'ho scritto.
    «Sono le azioni che contano. I nostri pensieri, per quanto buoni possano essere, sono perle false fintanto che non vengono trasformati in azioni. Sii il cambiamento che vuoi vedere avvenire nel mondo». (Mahatma Gandhi)

  4. #4
    Utente di HTML.it L'avatar di grendy
    Registrato dal
    Aug 2003
    Messaggi
    338
    posto il nuovo codice
    Codice PHP:
    <html>
    <head>
        <title>comuni italiani</title>
        <script language="javascript">
          function cboNulla_Aggiungi(valore) {
            if (valore != "") {
              var newOption = new Option(valore);
              document.forms[0].comboNulla.options[document.forms[0].comboNulla.options.length] = newOption;
            }
          }

          function cboNulla_Clear() {
            for (var i = document.forms[0].comboNulla.options.length; i>=0; i--){
              document.forms[0].comboNulla.options[i] = null;
            }
            document.forms[0].comboNulla.selectedIndex = -1;
          }
        </script>
        <?php require_once("config.php"?>
        <?php
        
    function mostraComuni($zone_code) {
           
    $strsql "select * from zones ";
           
    $strsql .= "where zone_country_id = '105' and zone_provincia = '0' ";
           
    $strsql .= "and zone_code = '" $zone_code "' ";
           
    $strsql .= "order by zone_name asc";

           
    $comuni mysql_query($strsql$db);
           
    $record mysql_num_rows($comuni);

           if (
    $record != ) {
              
    $o 0;
              while(
    $arr_comuni mysql_fetch_array($comuni)){
                
    $o +=1;
                echo 
    "<script language=\"javascript\">\n";
                echo 
    "<!-- \n";
                echo 
    "  cboNulla_Aggiungi(" $arr_comuni['zone_name'] . ");\n";
                echo 
    "// -->\n";
                echo 
    "</script>\n";
              } 
    // end while
           
    }  // end if
        
    }  // end function
        
    ?>
    </head>
    <body>
      <form>
          <div id="divProvince">
            <select size="1" style="width:180px;"  name="cboProvince" id="comboProvince"
             onchange="cboNulla_Clear(); <?php mostraComuni(cboProvince.value); ?>" >
              <option selected value="( nulla ) nulla ">
                <ID id= no_option>- Seleziona la Provincia -</ID></option>
              <option value="( Altro ) Altro ">
                <ID id= option000>- Altro -</ID></option>
        <?php
        $strsql 
    "select * from zones ";
        
    $strsql .= "where zone_country_id = '105' and zone_provincia = '1' ";
        
    $strsql .= "order by zone_name asc";

        
    $province mysql_query($strsql$db);
        
    $record mysql_num_rows($province);
        
        if (
    $record != ) {
            
    $o 0;
            while(
    $arr_province mysql_fetch_array($province)){
                
    $o +=1;
                echo 
    "<option value=\"" $arr_province['zone_code'] . "\">";
                if (
    $o 10) {
                    echo 
    "<ID id= option00" $o ">";
                    echo 
    $arr_province['zone_name'] . "</ID></option> \n";
                } 
    // end if
                
    if (($o >= 10) && ($o 100)) {
                    echo 
    "<ID id= option0" $o ">";
                    echo 
    $arr_province['zone_name'] . "</ID></option> \n";
                }  
    // end if
                
    if ($o >= 100) {
                    echo 
    "<ID id= option" $o ">";
                    echo 
    $arr_province['zone_name'] . "</ID></option> \n";
                }  
    // end if
            
    // end while
        
    }  // end if
        
    ?>
            </select>
          </div>

          <div style="display:block;" id="divnulla">
            <select size="1" style="width:180px;"  name="cboNulla" id="comboNulla">
              <option value="VALORE"><ID id="option000">VALORE000</ID></option>
            </select>
          </div>

          <div style="display:none;" id="divAltro">
            <input size="50" style="width:180px;" type="text"
            name="txtAltro" id="textAltro">
          </div>
      </form>
    </body>
    </html>
    non capisco perchè la funzione mostraComuni() non viene chiamata.
    «Sono le azioni che contano. I nostri pensieri, per quanto buoni possano essere, sono perle false fintanto che non vengono trasformati in azioni. Sii il cambiamento che vuoi vedere avvenire nel mondo». (Mahatma Gandhi)

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.