Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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中根据input type=radio标记选择数据库表?_Javascript_Java_Html_Mysql_Sql - Fatal编程技术网

Javascript 如何在jsp中根据input type=radio标记选择数据库表?

Javascript 如何在jsp中根据input type=radio标记选择数据库表?,javascript,java,html,mysql,sql,Javascript,Java,Html,Mysql,Sql,我在mysql数据库中有两个表,一个用于学生,一个用于教师。两个表具有相同的列 下面的代码仅将数据插入教师表。如果用户选择教师单选按钮,则注册数据应存储在教师表中。如果用户选择学生电台,则注册数据应存储在学生表中 单选按钮无法选择数据库表它只在mysql学生表中插入数据我选择教师单选按钮 问题也在这里 st.executeUpdate(查询) index.jsp <form method="GET " action="statement2.jsp" autocomplete="on"&

我在mysql数据库中有两个表,一个用于学生,一个用于教师。两个表具有相同的列

下面的代码仅将数据插入教师表。如果用户选择教师单选按钮,则注册数据应存储在教师表中。如果用户选择学生电台,则注册数据应存储在学生表中

单选按钮无法选择数据库表它只在mysql学生表中插入数据我选择教师单选按钮

问题也在这里

st.executeUpdate(查询)

index.jsp

<form  method="GET " action="statement2.jsp" autocomplete="on"> 
   <input type="radio" name="gender" value="teacher" checked/> Teacher
   <input type="radio" name="gender" value="Student"/>Student
   <input type="submit" value="Login" /> 
   <input type="button" onclick="location.href='reg.jsp';" value="Sign Up" />
</form> 
<form  method="GET" action="statement2.jsp" autocomplete="on"> 
    <h1> Sign up </h1> 
    <p> 
    <label for="firstnamesignup" class="fname" data-icon="u">First Name:</label>
    <input id="firstnamesignup" name="first" required="required" type="text" placeholder="First" />
    </p>
    <p> 
     <label for="lastnamesignup" class="lname" data-icon="u">Last Name:</label>
     <input id="lastnamesignup" name="last" required="required" type="text" placeholder="Last" />
     </p>
     <p> 
     <label for="usernamesignup" class="uname" data-icon="u">Username:</label>
     <input id="usernamesignup" name="user" required="required" type="text" placeholder="Username" />
     </p>
     <p> 
     <label for="passwordsignup" class="youpasswd" data-icon="p">Password:</label>
     <input id="passwordsignup" name="password" required="required" type="password" placeholder="Password"/>
     </p>
     <p> 
     <label for="passwordsignup_confirm" class="password" data-icon="p">Confirm Password:</label>
     <input id="passwordsignup_confirm" name="confirmpass" required="required" type="password" placeholder="Password"/>
     </p>
     <p> 
     <label for="emailsignup" class="youmail" data-icon="e" >Email:</label>
     <input id="emailsignup" name="email" required="required" type="email" placeholder="example@domain.com"/> 
     </p>
     <p> 
     <label>Date of Birth:</label>
     <select name="month" onChange="changeDate(this.options[selectedIndex].value);">
     <option value="na">Month</option>
     <option value="1">January</option>
     <option value="2">February</option>
     <option value="3">March</option>
     <option value="4">April</option>
     <option value="5">May</option>
     <option value="6">June</option>
     <option value="7">July</option>
     <option value="8">August</option>
     <option value="9">September</option> 
     <option value="10">October</option>
     <option value="11">November</option>
     <option value="12">December</option>
     </select>
     <select name="day" id="day">
     <option value="na">Day</option>
     </select>
     <select name="year" id="year">
     <option value="na">Year</option>
     </select>
     <script language="JavaScript" type="text/javascript">
     function changeDate(i){
     var e = document.getElementById('day');
     while(e.length>0)
     e.remove(e.length-1);
     var j=-1;
     if(i=="na")
     k=0;
     else if(i==2)
     k=28;
     else if(i==4||i==6||i==9||i==11)
     k=30;
     else
     k=31;
     while(j++<k){
     var s=document.createElement('option');
     var e=document.getElementById('day');
     if(j==0){
     s.text="Day";
     s.value="na";
     try{
     e.add(s,null);}
     catch(ex){
     e.add(s);}}
     else{
     s.text=j;
     s.value=j;
     try{
     e.add(s,null);}
     catch(ex){
     e.add(s);}}}}
     y = 1998;
     while (y-->1908){
     var s = document.createElement('option');
     var e = document.getElementById('year');
     s.text=y;
     s.value=y;
     try{
     e.add(s,null);}
     catch(ex){
     e.add(s);}}
     </script> 
     </p>
     <p> 
     <label>Gender:</label>
     <select name="Gender">
     <option value="male">Male</option>
     <option value="female">Female</option>
     </select>
     </p>
     <p class="signin button"> 
     <input type="submit" value="Register"/> 
     </p>
 </form>
       <%@page import="com.mysql.jdbc.Connection"%>
       <%@page import="com.mysql.jdbc.Statement"%>
       <%@page import="java.sql.ResultSet"%>
       <%@page import="java.sql.DriverManager"%>
       <%@page contentType="text/html" pageEncoding="UTF-8"%>
       <!DOCTYPE html>
       <html>
       <head>
       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
       <title>JSP Page</title>
       </head>
       <body>
       <h1>Hello World!</h1>

       <%@ page import ="java.sql.*" %>
       <%
        Connection c1 = null;
        Statement st = null;
        ResultSet rs = null;
        Class.forName("com.mysql.jdbc.Driver");
        c1 = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/teacher","root", "abcde");

        System.out.println("Couldn't find the driver!");
        System.out.println("Couldn't connect: print out a stack trace and exit.");
        System.out.println("We got an exception while creating a statement:" + "that probably means we're no longer connected.");

        st = (Statement) c1.createStatement();
             System.out.println("Statement Created Successfully");
             {
         System.out.println("We got an exception while creating a statement:" + "that probably means we're no longer connected.");

         }

         if (c1!= null) {
         System. out.println("Hooray! We connected to the database!");
         } else {
         System.out.println("We should never get here.");
         }}
        %>

老师
学生
statement2.jsp

<%
   String name=request.getParameter("first");
   String abc=request.getParameter("last");
   String cde=request.getParameter("user");
   String pass=request.getParameter("password");
   String confpass=request.getParameter("confirmpass");
   String emails=request.getParameter("email");
   String months=request.getParameter("month");
   String day=request.getParameter("day");
   String year=request.getParameter("year");

   String gender = request.getParameter("gender");
   if (gender != null) {
   String table = gender.equals("teacher") ? "teacher2" : "student";
// replace dots with your values
   String query = "INSERT INTO " + table + "(firstname,lastname,username,password,confirmpassword,email,month,day,year,gender) VALUES ('"+name+"','"+abc+"','"+cde+"','"+pass+"','"+confpass+"','"+emails+"','"+months+"','"+day+"','"+year+"','"+gender+"')";
  st.executeUpdate(query);}     // problem is here

 %>


reg.jsp

<form  method="GET " action="statement2.jsp" autocomplete="on"> 
   <input type="radio" name="gender" value="teacher" checked/> Teacher
   <input type="radio" name="gender" value="Student"/>Student
   <input type="submit" value="Login" /> 
   <input type="button" onclick="location.href='reg.jsp';" value="Sign Up" />
</form> 
<form  method="GET" action="statement2.jsp" autocomplete="on"> 
    <h1> Sign up </h1> 
    <p> 
    <label for="firstnamesignup" class="fname" data-icon="u">First Name:</label>
    <input id="firstnamesignup" name="first" required="required" type="text" placeholder="First" />
    </p>
    <p> 
     <label for="lastnamesignup" class="lname" data-icon="u">Last Name:</label>
     <input id="lastnamesignup" name="last" required="required" type="text" placeholder="Last" />
     </p>
     <p> 
     <label for="usernamesignup" class="uname" data-icon="u">Username:</label>
     <input id="usernamesignup" name="user" required="required" type="text" placeholder="Username" />
     </p>
     <p> 
     <label for="passwordsignup" class="youpasswd" data-icon="p">Password:</label>
     <input id="passwordsignup" name="password" required="required" type="password" placeholder="Password"/>
     </p>
     <p> 
     <label for="passwordsignup_confirm" class="password" data-icon="p">Confirm Password:</label>
     <input id="passwordsignup_confirm" name="confirmpass" required="required" type="password" placeholder="Password"/>
     </p>
     <p> 
     <label for="emailsignup" class="youmail" data-icon="e" >Email:</label>
     <input id="emailsignup" name="email" required="required" type="email" placeholder="example@domain.com"/> 
     </p>
     <p> 
     <label>Date of Birth:</label>
     <select name="month" onChange="changeDate(this.options[selectedIndex].value);">
     <option value="na">Month</option>
     <option value="1">January</option>
     <option value="2">February</option>
     <option value="3">March</option>
     <option value="4">April</option>
     <option value="5">May</option>
     <option value="6">June</option>
     <option value="7">July</option>
     <option value="8">August</option>
     <option value="9">September</option> 
     <option value="10">October</option>
     <option value="11">November</option>
     <option value="12">December</option>
     </select>
     <select name="day" id="day">
     <option value="na">Day</option>
     </select>
     <select name="year" id="year">
     <option value="na">Year</option>
     </select>
     <script language="JavaScript" type="text/javascript">
     function changeDate(i){
     var e = document.getElementById('day');
     while(e.length>0)
     e.remove(e.length-1);
     var j=-1;
     if(i=="na")
     k=0;
     else if(i==2)
     k=28;
     else if(i==4||i==6||i==9||i==11)
     k=30;
     else
     k=31;
     while(j++<k){
     var s=document.createElement('option');
     var e=document.getElementById('day');
     if(j==0){
     s.text="Day";
     s.value="na";
     try{
     e.add(s,null);}
     catch(ex){
     e.add(s);}}
     else{
     s.text=j;
     s.value=j;
     try{
     e.add(s,null);}
     catch(ex){
     e.add(s);}}}}
     y = 1998;
     while (y-->1908){
     var s = document.createElement('option');
     var e = document.getElementById('year');
     s.text=y;
     s.value=y;
     try{
     e.add(s,null);}
     catch(ex){
     e.add(s);}}
     </script> 
     </p>
     <p> 
     <label>Gender:</label>
     <select name="Gender">
     <option value="male">Male</option>
     <option value="female">Female</option>
     </select>
     </p>
     <p class="signin button"> 
     <input type="submit" value="Register"/> 
     </p>
 </form>
       <%@page import="com.mysql.jdbc.Connection"%>
       <%@page import="com.mysql.jdbc.Statement"%>
       <%@page import="java.sql.ResultSet"%>
       <%@page import="java.sql.DriverManager"%>
       <%@page contentType="text/html" pageEncoding="UTF-8"%>
       <!DOCTYPE html>
       <html>
       <head>
       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
       <title>JSP Page</title>
       </head>
       <body>
       <h1>Hello World!</h1>

       <%@ page import ="java.sql.*" %>
       <%
        Connection c1 = null;
        Statement st = null;
        ResultSet rs = null;
        Class.forName("com.mysql.jdbc.Driver");
        c1 = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/teacher","root", "abcde");

        System.out.println("Couldn't find the driver!");
        System.out.println("Couldn't connect: print out a stack trace and exit.");
        System.out.println("We got an exception while creating a statement:" + "that probably means we're no longer connected.");

        st = (Statement) c1.createStatement();
             System.out.println("Statement Created Successfully");
             {
         System.out.println("We got an exception while creating a statement:" + "that probably means we're no longer connected.");

         }

         if (c1!= null) {
         System. out.println("Hooray! We connected to the database!");
         } else {
         System.out.println("We should never get here.");
         }}
        %>

注册

名字:

姓氏:

用户名:

密码:

确认密码:

电邮:

出生日期: 月 一月 二月 前进 四月 也许 六月 七月 八月 九月 十月 十一月 十二月 白天 年 功能更改日期(一){ var e=document.getElementById('day'); 而(e.长度>0) e、 移除(e.长度-1); var j=-1; 如果(i==“na”) k=0; else如果(i==2) k=28; else如果(i==4 | | i==6 | | i==9 | | i==11) k=30; 其他的 k=31; while(j++1908){ var s=document.createElement('option'); var e=document.getElementById('年'); s、 text=y; s、 值=y; 试一试{ e、 添加(s,null);} 捕获(ex){ e、 添加(s);}

性别: 男性 女性


db conn.jsp

<form  method="GET " action="statement2.jsp" autocomplete="on"> 
   <input type="radio" name="gender" value="teacher" checked/> Teacher
   <input type="radio" name="gender" value="Student"/>Student
   <input type="submit" value="Login" /> 
   <input type="button" onclick="location.href='reg.jsp';" value="Sign Up" />
</form> 
<form  method="GET" action="statement2.jsp" autocomplete="on"> 
    <h1> Sign up </h1> 
    <p> 
    <label for="firstnamesignup" class="fname" data-icon="u">First Name:</label>
    <input id="firstnamesignup" name="first" required="required" type="text" placeholder="First" />
    </p>
    <p> 
     <label for="lastnamesignup" class="lname" data-icon="u">Last Name:</label>
     <input id="lastnamesignup" name="last" required="required" type="text" placeholder="Last" />
     </p>
     <p> 
     <label for="usernamesignup" class="uname" data-icon="u">Username:</label>
     <input id="usernamesignup" name="user" required="required" type="text" placeholder="Username" />
     </p>
     <p> 
     <label for="passwordsignup" class="youpasswd" data-icon="p">Password:</label>
     <input id="passwordsignup" name="password" required="required" type="password" placeholder="Password"/>
     </p>
     <p> 
     <label for="passwordsignup_confirm" class="password" data-icon="p">Confirm Password:</label>
     <input id="passwordsignup_confirm" name="confirmpass" required="required" type="password" placeholder="Password"/>
     </p>
     <p> 
     <label for="emailsignup" class="youmail" data-icon="e" >Email:</label>
     <input id="emailsignup" name="email" required="required" type="email" placeholder="example@domain.com"/> 
     </p>
     <p> 
     <label>Date of Birth:</label>
     <select name="month" onChange="changeDate(this.options[selectedIndex].value);">
     <option value="na">Month</option>
     <option value="1">January</option>
     <option value="2">February</option>
     <option value="3">March</option>
     <option value="4">April</option>
     <option value="5">May</option>
     <option value="6">June</option>
     <option value="7">July</option>
     <option value="8">August</option>
     <option value="9">September</option> 
     <option value="10">October</option>
     <option value="11">November</option>
     <option value="12">December</option>
     </select>
     <select name="day" id="day">
     <option value="na">Day</option>
     </select>
     <select name="year" id="year">
     <option value="na">Year</option>
     </select>
     <script language="JavaScript" type="text/javascript">
     function changeDate(i){
     var e = document.getElementById('day');
     while(e.length>0)
     e.remove(e.length-1);
     var j=-1;
     if(i=="na")
     k=0;
     else if(i==2)
     k=28;
     else if(i==4||i==6||i==9||i==11)
     k=30;
     else
     k=31;
     while(j++<k){
     var s=document.createElement('option');
     var e=document.getElementById('day');
     if(j==0){
     s.text="Day";
     s.value="na";
     try{
     e.add(s,null);}
     catch(ex){
     e.add(s);}}
     else{
     s.text=j;
     s.value=j;
     try{
     e.add(s,null);}
     catch(ex){
     e.add(s);}}}}
     y = 1998;
     while (y-->1908){
     var s = document.createElement('option');
     var e = document.getElementById('year');
     s.text=y;
     s.value=y;
     try{
     e.add(s,null);}
     catch(ex){
     e.add(s);}}
     </script> 
     </p>
     <p> 
     <label>Gender:</label>
     <select name="Gender">
     <option value="male">Male</option>
     <option value="female">Female</option>
     </select>
     </p>
     <p class="signin button"> 
     <input type="submit" value="Register"/> 
     </p>
 </form>
       <%@page import="com.mysql.jdbc.Connection"%>
       <%@page import="com.mysql.jdbc.Statement"%>
       <%@page import="java.sql.ResultSet"%>
       <%@page import="java.sql.DriverManager"%>
       <%@page contentType="text/html" pageEncoding="UTF-8"%>
       <!DOCTYPE html>
       <html>
       <head>
       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
       <title>JSP Page</title>
       </head>
       <body>
       <h1>Hello World!</h1>

       <%@ page import ="java.sql.*" %>
       <%
        Connection c1 = null;
        Statement st = null;
        ResultSet rs = null;
        Class.forName("com.mysql.jdbc.Driver");
        c1 = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/teacher","root", "abcde");

        System.out.println("Couldn't find the driver!");
        System.out.println("Couldn't connect: print out a stack trace and exit.");
        System.out.println("We got an exception while creating a statement:" + "that probably means we're no longer connected.");

        st = (Statement) c1.createStatement();
             System.out.println("Statement Created Successfully");
             {
         System.out.println("We got an exception while creating a statement:" + "that probably means we're no longer connected.");

         }

         if (c1!= null) {
         System. out.println("Hooray! We connected to the database!");
         } else {
         System.out.println("We should never get here.");
         }}
        %>

JSP页面
你好,世界!

首先是一些最佳实践:

  • 要在服务器上创建/更新数据时,请使用form method=POST
  • 将PreparedStatement用于INSERT/UPDATE,而不是语句
  • 现在,回到单选按钮的问题: 发送要存储在表中的数据的页面是reg.jsp,提交时调用的是statement2.jsp。在reg.jsp中没有name=“gender”单选按钮,实际上是在index.jsp

    您有两个选择:

  • 您将单选按钮的选定值传递给reg.jsp;在这里您使用表单中的隐藏字段,这种方式传递给statement2.jsp
  • 您可以在reg.jsp中添加单选按钮

  • 首先,在这种情况下,您不需要使用具有相同列的多个表。只需使用当前所有列的一个表,并创建一个名为
    user\u type
    的附加
    column
    user\u type
    column
    应具有
    teacher
    student
    的值,具体取决于从用户端获取的输入。 按如下所示更改查询

    INSERT INTO new_table_name
    (firstname,lastname,username,password,confirmpassword,email,month,day,year,gender,user_type)
    VALUES ('"+name+"','"+abc+"','"+cde+"','"+pass+"','"+confpass+"',
    '"+emails+"','"+months+"','"+day+"','"+year+"','"+gender+"','"+USER_TYPE_SELECTED+"')";
    

    您是否从单选按钮中选择了相应的值?@mady否,我没有从单选按钮中获取值。我如何获取单选按钮值。我只知道按名称获取值,但单选按钮具有相同的名称。如何将index.jsp单选按钮的所选值传递给reg.jsp,以及如何从同一列表中选择表数据库?这里可以用javascript函数替换onclick,即reg(){window.location='reg.jsp'+'?gender='+单选按钮的选定值;}在reg.jsp->仅此而已。
    您所说的只有一个学生和教师数据表的问题与我的问题完全相反。如何在单选按钮的基础上选择一个表来插入数据?我建议了一种更好的方法来实现该场景。对于您的问题,此代码有什么问题……应该可以工作
    String table=gender.equals(“教师”)?“teacher2”:“学生”
    @vipin cp我的问题是根据输入字段选择数据库表
    学生
    我该怎么做?@rajpoot
    教师
    在上面的代码中选中Remove并重试。至少你可以调试性别的值,对吗?我已经从教师输入类型中删除了checked,但同样的问题也存在mming我知道我没有在reg.jsp和statement2.jsp中使用radio value参数,这就是如何将jsp中的输入值用作getparameter的问题