Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用数组元素为选择框创建动态选项?并在另一个jsp页面中使用该选项框值?_Javascript_Jquery_Jsp_Select_Arraylist - Fatal编程技术网

Javascript 如何使用数组元素为选择框创建动态选项?并在另一个jsp页面中使用该选项框值?

Javascript 如何使用数组元素为选择框创建动态选项?并在另一个jsp页面中使用该选项框值?,javascript,jquery,jsp,select,arraylist,Javascript,Jquery,Jsp,Select,Arraylist,此问题与[此][1]问题相关联。我正在尝试使用数组元素为选择框创建动态生成的选项。同时,我希望所有数组元素在选择框中显示为一个选项。我还想在另一个JSP页面中使用这些元素。我真的不知道如何才能做到这一点 在程序“var jsArray[]”中,它是一个JavaScript数组,该数组包含我希望在选择框中将这些值显示为选项的所有值。我尝试了一些代码,但它不能正常工作。为了简单起见,我将在这里发布唯一需要的代码 var difference_ms = 3; var jsArray =[];

此问题与[此][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



var差值_ms=3;
var jsArray=[];
//将值放入jsArray,即jsArray[0]=第一个元素..依此类推
jsArray[]=“”;
var select=“”;
对于(变量i=0;i
)。附录(“#容器”); } ---------Process.jsp----------------------------------------
您不能直接在
append
中使用
for loop
,尝试将
select
字符串存储在某个
变量中,然后
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>
var差=3;
//声明空数组
var jsArray=[];
//将值放入jsArray,即jsArray[0]=第一个元素..依此类推
jsArray[]=“”;
var select=“”;
//循环遍历值并将其添加到var select中的选择框中,因为您不能用于append中的循环,所以将值存储在此处
对于(var j=0;j

)。附录(“#容器”); }

编辑: 尝试以下方法:

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>';
select='select';
对于(var j=0;j
您不能直接在
append
中使用
for loop
,尝试将
select
字符串存储在某个
变量中,然后
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>
var差=3;
//声明空数组
var jsArray=[];
//将值放入jsArray,即jsArray[0]=第一个元素..依此类推
jsArray[]=“”;
var select=“”;
//循环遍历值并将其添加到var select中的选择框中,因为您不能用于append中的循环,所以将值存储在此处
对于(var j=0;j

)。附录(“#容器”); }

编辑: 尝试以下方法:

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>';
select='select';
对于(var j=0;j
如果有人想或有兴趣阅读,我可以发布整个代码。!!我可以发布完整的代码,如果任何人想或有兴趣去通过它。!!评论不用于扩展讨论;此对话已结束。@Swati First->单击屏幕右角的按钮[堆栈交换按钮]。然后在当前社区的第二部分,你可以看到他们的聊天按钮,点击那个按钮。然后再看右下角,你会看到“隐藏冻结的房间”按钮。所以左边的“创建房间”按钮点击这个按钮,这样你就可以创建一个房间。我无法看到此按钮,因为我的个人资料的声誉不足50。但你会看到那个按钮。:)@Swati当任何参与者的评论少于20条时,您不能将评论移动到房间reputation@Swati你能再加入这个房间吗!我已根据我们的讨论更新了我的代码。评论不适用于扩展讨论;此对话已结束。@Swati First->单击屏幕右角的按钮[堆栈交换按钮]。然后在当前社区的第二部分,你可以看到他们的聊天按钮,点击那个按钮。然后再看右下角,你会看到“隐藏冻结的房间”按钮。所以左边的“创建房间”按钮点击这个按钮,这样你就可以创建一个房间。我无法看到此按钮,因为我的个人资料的声誉不足50。但你会看到那个按钮。:)@Swati当任何参与者的评论少于20条时,您不能将评论移动到房间reputation@Swati你能再加入这个房间吗!我已经根据我们的讨论更新了我的代码。