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