使用JSP不会将下拉列表中显示的选项保存到我的数据库中

时间:2019-05-15 14:52:45

标签: jsp

我想将下拉列表中显示的值保存到数据库中。该列表是从另一个数据库检索的。当我尝试保存它时,将保存表的id列,而不是下拉列表中显示的值。

我有两个数据库(cmsdb)和(testDB)。 testDB的表(学习计划)有两列(pos_id)和(pos_name)。 cmsdb有一个表(kasuStudent)。

下面的代码片段将“学习计划”表中的值成功加载到了下拉列表中。

<table>
<tr>
    <td>Programme*</td>
            <td><p>
            <select name='Programme' onchange="showDepartment(this.value)">  
                <option value="none">--Select Programme--</option>  
                <%
                    Class.forName("com.mysql.jdbc.Driver").newInstance();
                    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
                    Statement stmt = con.createStatement();
                    ResultSet rs = stmt.executeQuery("Select * from programmeofstudy");
                    while (rs.next()) {

                %>
                <option value=<%=rs.getString(1)%>><%=rs.getString(2)%></option>  
                <%
                    }
                %>
            </select>                                        
        <p></td>
</tr>

前面提到的问题是,每当我尝试保存值时。 pos_id将被保存到kasuStudentDB,而不是pos_name被保存。

如何保存pos_name。

这是用于插入数据库的代码片段,以防您需要查看。

<%@ page import ="java.sql.*" %>
<%

String programmeOfStudy = request.getParameter("Programme");

Class.forName("com.mysql.jdbc.Driver");
Connection con = 
DriverManager.getConnection("jdbc:mysql://localhost:3306/cmsdb",
        "root", "");
Statement st = con.createStatement();
int i = st.executeUpdate("insert into kasustudent(CourseOfStudy) values ('" + programmeOfStudy + "')");
if (i > 0) {
  %>

<script language='javascript'>
    window.alert('Account Successfully Created!! \n Login to access your Dashboard!');
    window.location='StudentLogin.jsp';
</script>
<%     

} else {
 %>

<script language='javascript'>
    window.alert('Account Not Created Try again!');
    window.location='StudentCreateAccount.jsp';
</script>
 

感谢您的预期答复。

1 个答案:

答案 0 :(得分:0)

相反:

<option value=<%=rs.getString(1)%>><%=rs.getString(2)%></option>  

这样做:

<option value=<%=rs.getString(2)%>><%=rs.getString(2)%></option>  

所以...用jsp编写Java代码是不好的。尝试将Java代码移至servlet并阅读有关EL的信息。

  

https://beginnersbook.com/2013/11/jsp-expression-language-el/

     

https://www.baeldung.com/intro-to-servlets