这个问题与此question有关。
我使用for循环创建了许多输入框。无论用户类型为什么值,都可以从该页面进入另一个JSP页面。输入框中的值正在正确获取。
但是在插入时,该值作为空白或null插入到数据库中。仅当用户按顺序键入第一输入框(第一输入框,第二输入框,第三输入框)时,才根据预期结果正确插入值。
即使我也在检查条件,也就是它是否包含空值。但它仍然会插入空值。
主要预期结果是,如果用户在文本框中输入特定值,则该值将正确插入,而不是将空白值插入数据库。
<!-----new.jsp---------------------------------------------->
<%
for(int i = 0; i<ar.size(); i++)
{
%><span class="left-check"><%=ar.get(i)%></span><%
%>
<!--name=abc will be used in jsp to get value selected in checkboxes-->
<input id ="<%=idcounter%>" type="checkbox" name = "abc" value="<%=ar.get(i)%>" />
<input class = "left-marg-input7 size" id ="<%=idcounter%>" type="text" name = "abc_val" /><br><br>
<%
idcounter++;
}
%>
</center><br><br>
<center><button type= "submit" name="action" >SIGN UP</button></center>
</form>
</body>
</html>
然后下一个jsp页面是:
<!------insertdata.jsp---------------------------------------------->
<html>
<%
String check[]= request.getParameterValues("abc");
String checkval[] = request.getParameterValues("abc_val");
String check_str = "";
String checkval_str = "";
if(check != null && checkval != null)
{
// there might be more one checkbox selected so, using loop
for(int i=0; i<check.length;i++)
{
// printing values selected from
check_str = check[i].toString();
checkval_str = checkval[i].toString();
if(checkval_str != null)
{
%><script>alert(<%=checkval_str%>);</script><%
st.executeUpdate("insert into user_assign_leave(org_email,user_email,leave_name,assign_leave,balance_leave)values('"+org_email+"','"+email+"','"+check_str+"','"+checkval_str+"','"+checkval_str+"')");
}
st.executeUpdate("insert into user_assign_leave(org_email,user_email,leave_name,assign_leave,balance_leave)values('"+org_email+"','"+email+"','"+check_str+"','"+checkval_str+"','"+checkval_str+"')");
}
}
st.executeUpdate("insert into user(org_name,org_email,name,email,mobile,custom_ID,pass)values('"+org_name+"','"+org_email+"','"+username+"','"+email+"','"+contactno+"','"+customer_id+"','"+password+"')");
%>
</body>
</html>