Bonjour, je suis novice en javascript/ajax et je souhaite effectuer un controle de "disponibilité" d'un nom dans une base de donnée via un formulaire (jsp) et une servlet. J'aimerai que cette vérification se fasse sans rafraichissement de la page et du coup j'ai utilisé ajax. Le controle du pseudo dans la BD fonctionne mais je ne sais pas comment renvoyer la réponse de la servlet vers la jsp. Est ce que quelqu'un peut m'aider? Merki^^.
voici un extrait du code du formulaire:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
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 <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script> </head> <style> table {margin: 0 auto;} </style> <body> <h1>Créer une nouvelle campagne</h1> <form action='Interface1Renvoi' method='POST' onsubmit="return (ValiderMail(this) && ValiderChampsFormulaire(this))"> <table width="475" border="0"> .... <tr> <th width="25%" > </th> <th width="75%" align="left"> <h2>Nom de l'expéditeur :</h2> <input type='text' name='NomExpediteur' id='NomExpediteur' size='60'/><br> <span id="msgbox" style="display:none"></span> </th> </tr> ...
voici le code javascript :
et le code post de ma servlet:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 $('#NomExpediteur').blur(function () { $('#msgbox').removeClass().addClass('messagebox').text('Vérification...').fadeIn('slow'); $.post('VerificationNom', { NomExpediteur: $(this).val() }, function (reponse) { if (reponse == 'non') { $('#msgbox').fadeTo(200, 0.1, function () { $(this).jsp('Ce nom existe déjà').addClass('busy').fadeTo(900, 1); }); } else { $('#msgbox').fadeTo(200, 0.1, function () { $(this).jsp('Ce pseudo est libre').addClass('dispo').fadeTo(900, 1); }); } }); });
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
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
47
48
49
50
51
52
53
54 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); String nom=request.getParameter("NomExpediteur"); Connection connexion = null; try { // chargement du driver Class.forName( "com.mysql.jdbc.Driver" ); ... // connexion à la BDD connexion = DriverManager.getConnection(url, utilisateur, motDePasse); // recherche du nom Statement statement = connexion.createStatement(); String requete = "SELECT count(*) as res FROM LISTENOMMAIL WHERE Nom= '" + nom + "' ;"; ResultSet recherche = statement.executeQuery(requete); int res=0; while(recherche.next()){ res= recherche.getInt("res"); } //renvoi de la reponse vers la jsp response.setContentType("text/xml"); if (res==0) { System.out.println("non"); response.getWriter().write("non"); } else { System.out.println("oui"); response.getWriter().write("oui"); } connexion.close(); } catch ( ClassNotFoundException e ) { /* Gérer les éventuelles erreurs ici. */ System.out.println("erreur classe"); } catch ( SQLException e ) { /* Gérer les éventuelles erreurs ici */ System.out.println("erreur sql"); ....
Partager