Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    149

    Passaggio campi vuoti con javascript

    Buongiorno ragazzi, ho bisogno del vostro aiuto.

    Pensavo di usare il linguaggio javascript per fare alcune azioni abilita/disabilita, ma mi sono posto una domanda.

    Ho una form che passa dati nel database tramite linguaggio php.

    Questa form ha delle select, ho bisogno che a seconda della scelta fatta nella prima select, si attivino oppure no altre select.

    Nel caso in cui queste select rimangano disattivate, ho bisogno che venga passato il valore compe "campo vuoto" in php.

    Come posso fare?che istruzioni posso usare?ho notato che se faccio "disabled" il dato non passa in php.

    Mi potete dare una mano?

    grazie!

  2. #2
    beh, ma perché non fai le select così:

    codice:
    <select name="selGrande" id="selGrande">
       <option value="campo vuoto">---</option>
       <option value="sel1">Attiva la 1</option>
       <option value="sel2">Attiva la 2</option>
       <option value="sel3">Attiva la 3</option>
    </select>
    
    <select name="sel1" id="sel1">
       <option value="campo vuoto">---</option>
    </select>
    
    <select name="sel2" id="sel2">
       <option value="campo vuoto">---</option>
    </select>
    
    <select name="sel3" id="sel3">
       <option value="campo vuoto">---</option>
    </select>
    Poi crei le funzioni JS per popolarle dinamicamente:

    codice:
    var valuesUno = ["Valore 1", "Valore 2", "Valore 3"];
    var valuesDue = ["Valore 1", "Valore 2", "Valore 3"];
    var valuesTre = ["Valore 1", "Valore 2", "Valore 3"];
    
    function populateSelect()
    {
       var idSel = this.options[this.selectedIndex].value;
       switch(idSel)
       {
          case 'sel1': 
              emptyAll();
              for(i = 0; i < valuesUno.length; i++)
              {
                  var opt = document.createElement("option");
                  opt.value = valuesUno[i];
                  opt.appendChild(document.createTextNode(valuesUno[i]));
    			  document.getElementById(idSel).appendChild(opt);
              }
          break;
          case 'sel2': 
              emptyAll();
              for(i = 0; i < valuesDue.length; i++)
              {
                  var opt = document.createElement("option");
                  opt.value = valuesDue[i];
                  opt.appendChild(document.createTextNode(valuesDue[i]));
    			  document.getElementById(idSel).appendChild(opt);
              }
          break;
          case 'sel3': 
              emptyAll();
              for(i = 0; i < valuesTre.length; i++)
              {
                  var opt = document.createElement("option");
                  opt.value = valuesTre[i];
                  opt.appendChild(document.createTextNode(valuesTre[i]));
    			  document.getElementById(idSel).appendChild(opt);
              }
          break;
       }
    }
    
    function emptyAll()
    {
        var sel = document.getElementById("sel1");
    
        for(i = sel.options.length - 1 ; i > 0; i--)
        {
            sel.remove(i);
        }
        
        sel = document.getElementById("sel2");
    
        for(i = sel.options.length - 1 ; i > 0; i--)
        {
            sel.remove(i);
        }
         
        sel = document.getElementById("sel3");
    
        for(i = sel.options.length - 1 ; i > 0; i--)
        {
            sel.remove(i);
        }
    }
    
    window.onload = function(){
       document.getElementById('selGrande').onchange = populateSelect;
    }
    Dovrebbe andare
    I DON'T Double Click!

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    149
    Ciao Artorius,
    sto facendo le prove con le istruzioni che mi hai dato. Una domanda, queste istruzioni popolano una select sola, selezionando una select precedente, ma se io ho l'esigenza di popolare 2 select contemporaneamente, come devo modificare le istruzioni che mi hai dato?
    grazie mille e buona domenica

  4. #4
    beh, aggiungi case allo switch copiando poi la parte che ti interessa:

    Metti di voler popolare la prima e la seconda, allora aggiungi una option alla select con l'evento:
    codice:
    <select name="selGrande" id="selGrande">
       <option value="campo vuoto">---</option>
       <option value="sel1">Attiva la 1</option>
       <option value="sel2">Attiva la 2</option>
       <option value="sel3">Attiva la 3</option>
       <option value="sel13">Attiva la 1 e la 3</option>
    </select>
    Poi aggingi un case alla funzione populateSelect

    Codice PHP:
     case 'sel13'
              
    emptyAll();
              for(
    0valuesUno.lengthi++)
              {
                  var 
    opt document.createElement("option");
                  
    opt.value valuesUno[i];
                  
    opt.appendChild(document.createTextNode(valuesUno[i]));
                  
    document.getElementById('sel1').appendChild(opt);
              }          
              for(
    0valuesTre.lengthi++)
              {
                  var 
    opt document.createElement("option");
                  
    opt.value valuesTre[i];
                  
    opt.appendChild(document.createTextNode(valuesTre[i]));
                  
    document.getElementById('sel3').appendChild(opt);
              }
          break; 
    E fai anche gli altri casi, in maniera simile, basta che modifichi il case, il nome degli array da cui prendi i value delle opiton e gli id nel getElementById.
    I DON'T Double Click!

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    149
    Artorius...GRAZIE MILLE...funziona tutto, tutto perfetto...
    grazie veramente...
    alla prossima!!

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.