如何使用Ajax连接到数据库,检查输入验证(JSP) [英] How to check input validation using Ajax connect to database (jsp)

查看:81
本文介绍了如何使用Ajax连接到数据库,检查输入验证(JSP)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在code是检查是否从用户输入的大学中已经存在的数据库。如果是的话,然后提交输入,进入下一个页面;如果不是,则发送用户警报消息,并保持在同一页上,它是choose_university.jsp上。所述checkUniversity.jsp用于连接到数据库,并执行检查。 但是,code没有这样做。我花了上个小时,但还是无法弄明白。谁能告诉我什么地方错了,并告诉我如何解决它?这是由于明天。请帮我。非常感谢。

choose_university.jsp是以下内容:

 <%@页面进口=的java.util。*%>

 < HTML>
 < HEAD><冠军>提供度 - 选择大学和LT; /标题>
 <脚本类型=文/ JavaScript的>

 功能的validate(){

     VAR XMLHTTP;
     XMLHTTP =新XMLHtt prequest();
     如果(XMLHTTP == NULL){
     警报(您的浏览器不支持AJAX!);
     返回;
      }
     。VAR U =的document.getElementById(大学)的价值;
     VAR URL =checkUniversity.jsp;
     URL =网址+?大学=+ U;
     xmlHttp.onreadystatechange =功能(){
     如果(xmlhttp.readyState == 4){
          的document.getElementById(大学)的innerHTML = xmlhttp.responseText。
        }
     }
     警报(是啊,我们得到了55555);
     xmlHttp.open(GET,URL,真正的);
     xmlHttp.send(空);
  }



  传播GetXmlHttpObject(){
      VAR XMLHTTP = NULL;
      尝试 {
          // Firefox,歌剧8.0+,Safari浏览器

           XMLHTTP =新XMLHtt prequest();
      }赶上(五){
            // IE浏览器
     尝试 {
            XMLHTTP =新的ActiveXObject(MSXML2.XMLHTTP);
     }赶上(五){
            XMLHTTP =新的ActiveXObject(Microsoft.XMLHTTP);
       }
     }
     返回xmlHtp;
  }
   < / SCRIPT>
   < /头>
    <身体GT;
   < BR>如果你找不到你的大学,请提供它在下面,并点击提交< BR>
   <形式方法=邮报行动=Provide_degrees_Choose_discipline.jsp的onsubmit =返回的validate()>
    < P>在手动添加你的大学< / P> < BR>
    &其中p为H.;大学名称:LT;输入类型=文本ID =大学NAME =大学/> < / P>< BR>
    <输入类型=提交名称=提交值=提交/>
    < /形式GT;
     < /身体GT;
     < / HTML>



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

     <%@页面进口=的javax.sql。*%>
    <%@标签库的uri =htt​​p://struts.apache.org/tags-beanpreFIX =豆%>
      <%@标签库的uri =htt​​p://struts.apache.org/tags-htmlpreFIX =HTML%>
      <%@页面进口=model.ApplicationModel%>
    < HTML>
     < HEAD><冠军>检查学校和LT; /标题>
    < /头>
     <身体GT;
     <%
          的System.out.println(heyheyhey);

           字符串U =的request.getParameter(大学);
    的Class.forName(org.postgresql.Driver);
        //打开使用的DriverManager与数据库的连接
        康恩=的DriverManager.getConnection(
                JDBC:PostgreSQL的://本地主机:5432 /访问? +
                用户=的Postgres和放大器;密码= neshorange);
        //创建语句
        语句语句= conn.createStatement();
            //使用创建的语句来选择
            //学生属性从学生表。

        RS = Statement.executeQuery的(SELECT COUNT(*)为c来自大学WHERE大学= \'+ U +\';);
      如果(先将rs.next()){
       如果(rs.getInt(C)大于0){
           回复于(假);
       } 其他 {
       回复于(真);
       }
      }
       回复于(真);
        %>
    < /身体GT;
    < / HTML>
 

解决方案

试试这个

 函数的validate()
{
    。VAR U =的document.getElementById(大学)的价值;
    .post的$('checkUniversity.jsp?大学='+ U,功能(数据){
      如果(数据== true)而返回true;
      其他
          {
              警报(用户不列入存在)
              返回false;
          }
});
}
 

您必须返回true,如果用户存在从checkUniversity.jsp

The code is to check if the university input from user already exists in database. If yes, then submit the input and go to the next page; if not, then send user an alert message and stay on the same page, which is choose_university.jsp. The checkUniversity.jsp is used to connect to the database and do the checking. But the code is not doing it. I have spent hours on it and still can't figure it out. Could anyone please tell me what's wrong with it and show me how to fix it? It's due tomorrow. Please help me. Thanks a lot.

choose_university.jsp is following:

<%@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>

解决方案

Try this

function validate()
{
    var u = document.getElementById("university").value;
    $.post('checkUniversity.jsp?university=' + u, function(data) {
      if(data==true) return true;
      else
          {
              alert("user doesnot exists ")
              return false;
          }
});
}

You have return true if users exists from checkUniversity.jsp

这篇关于如何使用Ajax连接到数据库,检查输入验证(JSP)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆