表单中有一个文本框,比如代表学号,我输入学号,然后点添加,如果数据库没有这个学号,则添加成功,如果有则提示不能添加。<form  method="post" action="1.jsp">
<label>学生学号</label>&nbsp;&nbsp;&nbsp;&nbsp;
<input name="id" id="id" type="text" maxlength="15" />
<input type="submit" value="插入">
</form>
该怎么办呢》?

解决方案 »

  1.   

    点击添加后,判断数据库中是否有这个学号,如果有则返回当前页面,并且提示错误,否则转到添加成功的页面。推荐使用Ajax,这样当焦点离开学号输入框后,就可以直接进行验证,而不用页面跳转!
      

  2.   

    在学生表中查找看有没有用户输入id的记录:
    select * from student where stuid = id;如果有就提示不能添加.
      

  3.   

    在实现添加功能的JAVA代码中,首先以学号查询数据库,以查询结果判断数据库是否存在。
    若存在,则:request.setAttribute("msg","已经存在");
    然后使用转发到页面:request.getRequestDispatch("xxx.jsp").forword(request,response);
    页面使用:
    ${msg }//EL表达式方式得到提示
    或者直接使用代码实现
    <%
    String msg = getAttribute("msg");
    %><%=msg%>
      

  4.   

    是可以实现的。. 还有servlet.. package com.zshome_admin.struts.action.news;import java.io.IOException;
    import java.io.PrintWriter;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import com.zshome_admin.hbm.News;
    import com.zshome_admin.hbm.NewsDAO;
    import com.zshome_admin.hbm.NewsTypeDAO;
    import com.zshome_admin.hbm.PersonenlistDAO;public class CheckNtype extends HttpServlet {    /**
         * Constructor of the object.
         */
        public CheckNtype() {
            super();
        }    /**
         * Destruction of the servlet. <br>
         */
        public void destroy() {
            super.destroy(); // Just puts "destroy" string in log
            // Put your code here
        }
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {        response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            response.setCharacterEncoding("utf-8");
            String uname = request.getParameter("uname");
            String title=request.getParameter("title");
            String position=request.getParameter("position");
            if(uname!=null){
            NewsTypeDAO dao=new NewsTypeDAO();
             boolean flg=dao.findSelByTitle(uname);
             if(flg)
             {
                  out.println(1);
             }else
                  out.println(0);
            }else if(title!=null)
            {
                NewsDAO ndao=new NewsDAO();
                boolean flg=ndao.IsExceTitle(title);
                if(flg)
                {
                    out.print(1);
                }else
                    out.print(0);
            }else if(position!=null)
            {
                PersonenlistDAO perdao=new PersonenlistDAO();
                boolean flg=perdao.IsExcePosition(position);
                if(flg)
                {
                    out.print(1);
                }else 
                    out.print(0);
            }
             out.flush();
             out.close();
        }    /**
         * The doPost method of the servlet. <br>
         *
         * This method is called when a form has its tag value method equals to post.
         * 
         * @param request the request send by the client to the server
         * @param response the response send by the server to the client
         * @throws ServletException if an error occurred
         * @throws IOException if an error occurred
         */
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doGet(request,response);
        }    /**
         * Initialization of the servlet. <br>
         *
         * @throws ServletException if an error occurs
         */
        public void init() throws ServletException {
            // Put your code here
        }}首先页面文本框,             <tr>
                  <td align="center" bgcolor="#F6F6F6">新闻标题:</td>
                  <td height="25" colspan="2" align="left" bgcolor="#F6F6F6" style="width: 367px">
                      <input type="text" name="title" id="title" onblur="startRequestUsingPOST();" type="text"/>
                      <label id="message" style="color: red">该标题已存在</label>
                      <label id="lbltitle" style="color: red">标题不能为空</label>                  </td>
                  <td bgcolor="#F6F6F6">&nbsp;不能为空</td>
                </tr>
    然后JS.. 
         function startRequestUsingPOST() {
             if(checktitle()==false)
             { 
                   return;
             }
               var title = document.getElementById("title").value;
               createXMLHttpRequest();
               xmlHttp.open("POST","CheckNtype",true);
               xmlHttp.onreadystatechange = processResponse;
               xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
               xmlHttp.send("title=" + title);
          }
          
          function processResponse() {
               if(xmlHttp.readyState == 4) {
                    if(xmlHttp.status == 200) {
                        var result = xmlHttp.responseText;
                  if(result==1){
                    document.getElementById("message").style.display="inline";
                    document.getElementById("btnadd").disabled="disabled";
                    }else
                    {
                      document.getElementById("message").style.display="none";
                     document.getElementById("btnadd").disabled="";
                     }
                    }
               }
          }
          function checktitle()
          {
           var title=document.getElementById("title").value;
              if(title=="")
              {
               document.getElementById("lbltitle").style.display="inline";
                return false;
              }else
              {
              document.getElementById("lbltitle").style.display="none";
               return true;
           }
          }然后WEB.XML加上一段配置. 
      <servlet>
        <servlet-name>CheckNtype</servlet-name>
        <servlet-class>com.zshome_admin.struts.action.news.CheckNtype</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>CheckNtype</servlet-name>
        <url-pattern>/CheckNtype</url-pattern>
      </servlet-mapping>自己在理清思路,慢慢改..我现在做的项目就是用这种. 不过还有更简单的.就不说了..