Как создать динамические параметры для поля выбора, используя элементы массива? и использовать это значение поля параметра на другой странице jsp?

Этот вопрос связан с [этим] [1] вопросом. Я пытаюсь создать динамически генерируемые параметры для поля выбора, используя элементы массива. тем временем я хочу, чтобы все элементы массива отображались как опция в поле выбора. а также я хочу использовать все эти элементы на другой странице JSP. Я действительно понятия не имею, как сделать это возможным.

В программе «var jsArray []», которая представляет собой массив JavaScript, этот массив содержит все значения, которые я хочу отображать в качестве опции в поле выбора. Я пробовал некоторый код, но он не работает должным образом. Для простоты я буду публиковать здесь только необходимый код.


var difference_ms = 3;

var jsArray =[]; 
                <%
                for (int i = 0; i < ar.size(); i++) {
                    %>
               // putting value in  jsArray  i.e at  jsArray[0]=first element ..so on 
                jsArray[<%= i %>] = "<%= ar.get(i) %>"; 

              <% } %>
                var select   = "";
             for (var i = 0; i < difference_ms; i++) 
             {
             $('<div class = "align" id = "' + i + '">'+select+'<input class = "space2 
             size"type = "text" id = "amit' + i + '"><span><select><option value = "FULL DAY">
             FULL DAY</option><option value = "HALF DAY">HALF DAY</option></select></div>
             <br><br>').appendTo('#container');
            }

<div id = "container"></div>



---------Process.jsp----------------------------------------

<%
           String s = request.getParameter("val");
           String user_mail = request.getParameter("user_mail");

           ArrayList<String> ar = new ArrayList<>();
           String array_value_ar = "";
           String temp = "";

           if (s==null || s.trim().equals(""))
            {  
                // out.print("Please enter id");  
            }
            else
            {  
            //int id=Integer.parseInt(emp);  
                // out.println(id);
            try
            {  
            Class.forName("com.mysql.jdbc.Driver");  
            Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/registerdb", "root", "");  
            PreparedStatement ps_leave = con.prepareStatement("select leave_Name from orgleave");
            ResultSet rs_leave = ps_leave.executeQuery();
            while(rs_leave.next())
            {
                array_value_ar = rs_leave.getString("leave_name");
                ar.add(array_value_ar);
            }
            for(int i=0;i<ar.size();i++)
            {
                temp = (ar.get(i)).toString();
            if (s.equals(temp))
            { 
                PreparedStatement ps = con.prepareStatement("select balance_leave from user_assign_leave where user_email=?"); 
                ps.setString(1,user_mail);
                ResultSet rs = ps.executeQuery();
                if (rs.next()) 
                { 
                    out.print(rs.getString("balance_leave"));
                }
            }
            }
          /*  else if (s.equals("TYPE B"))
            { 
                PreparedStatement ps1 = con.prepareStatement("select rem_type_b from request where emp_id=?"); 
                ps1.setString(1,user_mail); 
                ResultSet rs1 = ps1.executeQuery();
                if (rs1.next()) 
                { 
                    out.print(rs1.getDouble("rem_type_b")); 
                }
            } 
            else if (s.equals("TYPE C"))
            { 
                PreparedStatement ps2 = con.prepareStatement("select rem_type_c from request where emp_id=?"); 
                ps2.setString(1,user_mail); 
                ResultSet rs2 = ps2.executeQuery();
                if (rs2.next()) 
                { 
                    out.print(rs2.getDouble("rem_type_c")); 
                }
            }  */ 
                con.close(); 
            } 
            catch(Exception e){e.printStackTrace();} 
            }   
       %>

  [1]: https://stackoverflow.com/questions/55918875/how-print-record-from-database-when-user-select-options-from-dropdown-menu-dyna/55921444#55921444


я могу опубликовать весь код, если кто-то хочет или заинтересован пройти через него.!!

cranky dojo 22.05.2019 14:20
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
656
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не можете напрямую использовать for-loop внутри своего append, попробуйте сохранить свою строку select в каком-нибудь variable и append там, как, например, попробуйте код ниже, также я не тестировал этот код, он может иметь некоторую синтаксическую ошибку:

     var difference_ms = 3;
                //declare empty array
                var jsArray =[]; 
                <%
                for (int i = 0; i < ar.size(); i++) {
                    % >
               // putting value in  jsArray  i.e at  jsArray[0]=first element ..so on 
                jsArray[<%= i %>] = "<%= columns.get(i) %>"; 

              <% } %>
               var select   = "";
          //looping through value and adding it in select box in var select as you cannot used for loop inside your append so storing value here  
              for(var j = 0; j < jsArray.length; j++) {
              select += '<select class = "space" onchange  = "sendInfo(this.value,' + i + ');"><option>SELECT</option><option value = "'+ jsArray[j]+'">"'+jsArray[j]+'"</option></select>';

              }
   // putting select value in your append 
            for (var i = 0; i < difference_ms; i++) {
             $('<div class = "align" id = "' + i + '">'+select+'
             <input class = "space2 size"type = "text" id = "amit' + i + '">
           <span><select><option value = "FULL DAY">FULL DAY</option>
           <option value = "HALF DAY">HALF DAY</option></select></div><br> 
             <br>').appendTo('#container');
            }
 <div id = "container"></div>

Редактировать: Попробуйте, как показано ниже:

select='<select class = "space" onchange  = "sendInfo(this.value,' + i + ');"><option>SELECT</option>';
for(var j = 0; j < jsArray.length; j++) {
       //appending new option in selectbox
              select += '<option value = "'+ jsArray[j]+'">"'+jsArray[j]+'"</option>';

              }
           select+= '</select>';

Комментарии не для расширенного обсуждения; этот разговор был перешел в чат.

Samuel Liew 24.05.2019 02:11

@Swati First -> нажмите кнопку, расположенную в правом углу экрана [кнопка обмена стеком]. затем, во-вторых, в этом разделе текущего сообщества вы можете увидеть их кнопку чата, нажмите на нее. затем посмотрите в правый нижний угол, там вы увидите кнопку «скрыть замороженные комнаты». так что левая сторона кнопки «создать комнату» нажмите на эту кнопку, и таким образом вы можете создать комнату. я не вижу эту кнопку из-за менее чем 50 репутации моего профиля. но вы увидите эту кнопку. :)

cranky dojo 24.05.2019 07:26

@Swati, вы не можете перемещать комментарии в комнату, если репутация любого участника меньше 20.

Samuel Liew 24.05.2019 08:11

@Swati, ты можешь снова присоединиться к комнате! Я обновил свой код в соответствии с нашим обсуждением.

cranky dojo 24.05.2019 12:59

Другие вопросы по теме