2017-07-16 1 views
1

J'ai le code ci-dessous. Comment transmettre la valeur sélectionnée à un autre scriptlet? J'ai essayé de faire "getAttribute", mais cela n'a pas fonctionné. Donc, le code ci-dessous répertorie les types de voiture et je sélectionne une valeur, mais je ne sais pas comment passer la valeur sélectionnée à une deuxième liste déroulante qui se remplit en fonction de la valeur sélectionnée.Passez la liste déroulante sélectionnée dans la deuxième liste déroulante

menu déroulant Première:

<div class="cell"> 
    Select Car_Type 
    <div class="input-control"> 
     <select id="carid" name="carid"> 
     <option selected disabled>--SELECT CAR TYPE--</option> 
     <% 
     ArrayList<Integer> carList = CarListDAO.getCar(id); 
     for (int c: carList){ 
      out.println("<option value='" + c + "'>" + c + "</option>"); 
       request.setAttribute("c", c); 
     } 

     %> 
     </select> 

    </div> 
</div> 

Passe valeur sélectionnée par le haut dans la fonction ci-dessous:

<div class="cell"> 
    Select Car_Engine 
    <div class="input-control"> 
     <select id="carENGINE" name="carENGINE"> 
     <option selected disabled>--SELECT CAR Engine--</option> 
     <% 
     ArrayList<String> carEngine = CarListDAO.getCarEngine(SELECTED_VALUE_FIRST_DROPDOWN); <----selected value from first dropdown passed to this method 
     for (String y: carEngine){ 
      out.println("<option value='" + y + "'>" + y + "</option>"); 
       request.setAttribute("y", y); 
     } 

     %> 
     </select> 

    </div> 
</div> 
+0

Vous ne pouvez pas aimer ça. Votre code est en cours d'exécution sur le serveur et affiche simplement une liste d'options. Lorsque le HTML est rendu, vous n'êtes pas un événement sélectionnant une option de la première sélection –

Répondre

0

Vous avez besoin soit de mettre en œuvre un moyen d'envoyer la valeur sélectionnée au serveur pour obtenir la liste d'autres options ou vous pouvez intégrer vos objets dans JSON sur votre page Web et utiliser JavaScript sur le client pour modifier les options:

<% 
Map<int, ArrayList<String>> engines = new Map<int, ArrayList<String>>(); 
ArrayList<Integer> carList = CarListDAO.getCar(id); 
for (int c: carList){ 
    ArrayList<String> carEngine = CarListDAO.getCarEngine(c); 
    engines.put(c, carEngine); 
} 
%> 
<script> 
var engines = <%out.println(JSONObject.valueToString(engines));%>; 
function showEngines() { 
    var el= document.getElementById('carid'); 
    for(var i=0;i<el.options.length;i++) { 
     if (el.options[i].selected) { 
      bindEngines(el.options[i].value); 
      break; 
     }  
    } 
} 
function bindEngines(c) { 
    var el=document.getElementById('carENGINE'); 
    el.options.length = 0; 
    var newOptions= engines[c]; 
    for (i=0; i<newOptions.length; i++) 
    { 
     el.options[el.length] = new Option(newOptions[i], newOptions[i]); 
    } 
} 
</script> 

<div class="cell"> 
    Select Car_Type 
    <div class="input-control"> 
     <select id="carid" name="carid" change="showEngines()"> 
     <option selected disabled>--SELECT CAR TYPE--</option> 
     <% 
     for (int c: carList){ 
      out.println("<option value='" + c + "'>" + c + "</option>"); 
     } 

     %> 
     </select> 

    </div> 
</div> 


<div class="cell"> 
    Select Car_Engine 
    <div class="input-control"> 
     <select id="carENGINE" name="carENGINE" disabled> 
     <option selected disabled>--SELECT CAR Engine--</option> 
     </select> 

    </div> 
</div>