[AJAX] Verification Pseudo existant avec Ajax jsp et servlet
le prob est que le script ajax ne fonctionne pas
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
<script type="text/javascript">
var bPseudo = false;
function req_pseudo(pseudo) {
//XMLHttpRequest est supporté par Internet Explorer 5.0+, Safari 1.2, Mozilla 1.0 / Firefox, Netscape 7
if(document.all) var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); //Internet Explorer
else var XhrObj = new XMLHttpRequest(); //Mozilla
content = document.getElementById("pseudo_check"); //zone d'affichage
XhrObj.open("GET", "verifpseudo.java");
//Ok pour la page cible
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200) {
if (XhrObj.responseText =="OK") {
content.innerHTML="<img src="/accepter.png" alt=""/> OK";
bPseudo = true; // ok nouveau pseudo
} else {
content.innerHTML="<img src="/refuser.png" alt=""/> Déjà pris";
bPseudo = false; // erreur pseudo déjà existant
}
}
}
XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send('p='+pseudo);
}
function testChamps(f) {
bPseudo = false; // on va revalider le champ
req_pseudo(f.pseudo.value);
if (!bPseudo) {
alert('Erreur pseudo');
return false;
}
if (f.mdp.value != f.mdp2.value) {
alert('Mots de passe différents');
return false;
}
return true;
}
</script> |
voila le code jsp
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<body>
<h3>Tester l'existence d'un pseudo en Ajax</h3>
<p>On peut tester avec le pseudo JBL déjà existant ou au autre au hasard qui lui ne le sera pas.</p>
<form method="post" onsubmit="return testChamps(this);">
<p>Choisissez un pseudo : <input type="text" name="pseudo" value="" onblur="req_pseudo(this.value);"> <span id="pseudo_check"></span></p>
<p>Choisissez un mot de passe : <input type="password" name="mdp" value=""></p>
<p>Confirmez le mot de passe : <input type="password" name="mdp2" value=""></p>
<input type="submit" name="Valider" value="Valider">
</form>
</body> |
Voila la servlet verifpseudo:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
public class verifpseudo extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ConnexionBD c =new ConnexionBD();
c.driver();
Connection con=c.OpenConnexion();
int k=0;
try {
String sql="select * from visitnoneffectue";
con.setAutoCommit(false);
Statement st=con.createStatement();
ResultSet rs=st.executeQuery(sql);
con.commit();
boolean trouve=false;
PrintWriter out = response.getWriter();
while(!trouve & rs.next()){
if(rs.getString(3).equals(request.getParameter("pseudo"))){
out.println("OK");
trouve=true;
}
}
if(!trouve) {out.println("FAIL");}
}
catch(Exception e)
{
System.out.println("Echec de l'exécution de la requête sql :"+e.getMessage());
}
} |
NB: je pense que l'erreur ce que n'accede pas à la servlet .Merci de m'aider :)