2017-05-31 9 views
0

DB内のユーザーを確認するためにAjaxを使用してJSPでコードを開発しています(ユーザーが電子メールIDを提供する入力ボックスが1つあり、 ajaxを使用して)、ユーザーがDBに存在しない場合、ユーザーはフォームを送信できません。以下のコードでは、Ajaxが動作しています。 JSPのユーザチェックファイル(user_exist_function.jsp)からの返信に応じてtrue/falseを表示しますが、DBにユーザが存在しない場合は、投稿をやめるようにユーザに制御できません。助けてください。ユーザーがデータベースに存在しない場合は、フォームの送信を停止します

JS

var MyApp = {}; 

function check() { 
    xmlHttp = GetXmlHttpObject() 
    var url = "user_exist_function.jsp"; 
    value = document.getElementById('email1').value; 
    url = url + "?username=" + value; 
    xmlHttp.onreadystatechange = stateChanged 
    xmlHttp.open("GET", url, true) 
    xmlHttp.send(null) 
} 

function stateChanged() { 
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") { 
    var showdata = xmlHttp.responseText; 
    document.getElementById("mydiv").innerHTML = showdata; 

    MyApp.status = showdata; 

    } 
} 

function GetXmlHttpObject() { 
    var xmlHttp = null; 
    try { 
    xmlHttp = new XMLHttpRequest(); 
    } catch (e) { 
    try { 
     xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch (e) { 
     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    } 
    return xmlHttp; 
} 

function check_submit() { 
    var var1 = MyApp.status.valueOf().toLocaleString(); 


    if (var1 == 'true') { 
    return false; 
    } else { 
    return true; 
    } 
} 

HTML

<form name="form" onsubmit="return check_submit();"> 
    Email Id: <input type="text" name="email" id="email1" onkeyup="check();"> 
    <font color="red"> 
    <div id="mydiv"></div> 
    </font> 
    <input type="submit"> 
</form> 

user_exist_function.jsp

<%@page import="java.sql.*" %> 
<%@include file="Database_connectivity.jsp" %> 

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<% 
    try{ 
      String username = request.getParameter("username").toString(); 
      PreparedStatement ps = conn.prepareStatement("SELECT * FROM V_USER_DATA WHERE " + 
        "EMAIL = ?"); 
      ps.setString(1,username); 

      ResultSet res = ps.executeQuery(); 


      if(res.next()) 
      { 
       out.println("false"); 
      } 
      else 
      { 
       out.println("true"); 
      } 

     }catch (Exception e){ 
      out.println(e); 
     } 
%> 
+0

はここで基本的な機能、簡略化されます}

function check() { $.get("user_exist_function.jsp", {username: $("email").val()}, function(data) { if (data) { $("#Mysubmit").show(); $("#msgNotInDB").hide(); } else { $("#Mysubmit").hide(); $("#msgNotInDB").show(); }); 

を:これは、与えられたのJavascriptのすべてを置き換える必要がありhttps://jsfiddle.net/khrismuc/1xdb3yzu/が正常に動作しますので、あなたの元のコードはところでました。私はフォームを送ることができませんでした。私は推薦する:a)jQueryを使用する、b)適切な字下げ、c)変数名と正確で正確な値 –

答えて

0
<input id="Mysubmit" type="submit"> 
    <span id="msgNotInDB" style="display:none">You are not in the database</span> 


     if(res.next()) 
     { 
      $("#Mysubmit").hide(); 
      $("#msgNotInDB").show(); 
     } 
     else 
     { 
      $("#Mysubmit").show(); 
      $("#msgNotInDB").hide(); 
     } 

注:jQueryのを使用して、この答えは、任意の賢明な試みにあるためWebページ上でAJAXを使用すると、jQuery(または少なくとも類似のライブラリ)を使用します。私が示したことはそれなしで(document.getElementById()を使用して)行うことができますが、それにはあまり意味がありません。

更新:
私はjQueryコードをサーバー側のコードに入れていることに気付きました。だから、私たちの書き直しを広げてみましょう。

+0

ありがとうJames ..だから私はこのチェック関数のコードでチェック関数のコードを置き換える必要がありますか?私が含める必要があるanyotherライブラリ? –

関連する問題