javascript - 如何使用 Ajax 连接数据库 (jsp) 检查输入验证

标签 javascript ajax dom-events onsubmit

该代码用于检查用户输入的大学是否已存在于数据库中。如果是,则提交输入并进入下一页;如果没有,则向用户发送一条警报消息并停留在同一页面上,即 Choose_university.jsp。 checkUniversity.jsp 用于连接数据库并进行检查。 但代码并没有这样做。我花了几个小时研究它,但仍然无法弄清楚。谁能告诉我它出了什么问题并告诉我如何修复它?明天就到期了。请帮我。

choose_university.jsp 如下:

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

 <html>
 <head><title>Provide degrees - choose university</title> 
 <script type="text/javascript">

 function validate() {

     var xmlHttp;
     xmlHttp = new XMLHttpRequest();
     if (xmlHttp == null) {
     alert("Your browser does not support AJAX!");
     return;
      }
     var u = document.getElementById("university").value;
     var url = "checkUniversity.jsp";
     url = url + "?university=" + u;
     xmlHttp.onreadystatechange = function() {
     if (xmlhttp.readyState == 4 ) {
          document.getElementById("university").innerHTML = xmlhttp.responseText;
        }
     }
     alert("yea we got 55555");
     xmlHttp.open("GET", url, true);
     xmlHttp.send(null);
  }



  function GetXmlHttpObject() {
      var xmlHttp = null;
      try {
          // Firefox, Opera 8.0+, Safari

           xmlHttp = new XMLHttpRequest();
      } catch (e) {
            // Internet Explorer
     try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
       }
     }
     return xmlHtp;
  }
   </script>
   </head>
    <body>
   <br> If you can't find your university, please provide it in the following and hit submit <br>
   <form method="post" action="Provide_degrees_Choose_discipline.jsp" onsubmit = "return validate()">
    <p>To manually add your university </p> <br>
    <p> name of university: <input type = "text" id="university"  name = "university" />        </p><br>
    <input type="submit" name = "submit" value="submit"  />
    </form>
     </body>
     </html>



       /*  checkUniversity.jsp  */
      <% response.setContentType("text/xml") ; %>

     <%@ page import="javax.sql.*"%>
    <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
      <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
      <%@ page import="model.ApplicationModel" %>
    <html>
     <head><title>check university</title> 
    </head>
     <body>
     <%
          System.out.println("heyheyhey");

           String u = request.getParameter("university") ;
    Class.forName("org.postgresql.Driver");
        // Open a connection to the database using DriverManager
        conn = DriverManager.getConnection(
                "jdbc:postgresql://localhost:5432/access?" +
                "user=postgres&password=neshorange");
        // Create the statement
        Statement statement = conn.createStatement();
            // Use the created statement to SELECT
            // the student attributes FROM the Student table.

        rs = statement.executeQuery("SELECT count(*) as c FROM universities WHERE university=\'"+ u +"\';");
      if (rs.next()){
       if ( rs.getInt("c") > 0) {
           response.write("false");
       } else {
       response.write("true");
       }
      }
       response.write("true");
        %>
    </body>
    </html>

最佳答案

尝试去掉 onSubmit 中的“返回”,然后重试。还要安装 firebug 或其他检查器(如果尚未安装),以便您可以看到 javascript 和请求错误。

现在也没有必要像这样经历所有 ajax 的事情了。查看 jQuery 或 Mootools 等 javascript 库。他们可以把你的js代码变成只有几行。

关于javascript - 如何使用 Ajax 连接数据库 (jsp) 检查输入验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8351969/

相关文章:

javascript - ASP 处理程序未向托管环境中的 ajax 调用返回错误消息

javascript - Vanilla JavaScript 中的事件处理程序命名空间

angular - Ionic 事件在延迟加载模块之间无法正常工作

javascript - 需要帮助在单击时切换此按钮

javascript - AngularJS 如何在 setTimeout 后强制更新 DOM

javascript - 在 Jasmine 中测试 Promise 并没有解决 - 让 Expected undefined 成为对象

javascript - jQuery Accordion - 无法关闭当前 <dt>

Javascript if 语句取消 while 循环?

javascript - Laravel,将 php 变量传递给 JS 函数,显示为键而不是值

javascript - 将 JSONP 提交到 PHP