Bonjour,
dans le but de faire un formulaire de contacte je me suis lancé dans l'ajax.
Le souci c'est une fois que ma fonction est lancé je ne reçois pas de réponse du serveur j'ai un jolis Aborted.
Donc le requête est bien envoyer mais c'est la réponse qui merde.
Sauf quand je mes un "alert("test");" apres "xhr.send(data);"
Voila le js :
La page en html :
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
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
55
56
57
58
59
60
61 function getXMLHttpRequest() { xhr = null; if (window.XMLHttpRequest || window.ActiveXObject) { if (window.ActiveXObject) { try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { xhr = new XMLHttpRequest(); } } else { alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest..."); return null; } return xhr; } function request(callback) { nom = document.getElementById("nom").value; prenom = document.getElementById("prenom").value; email = document.getElementById("email").value; site = document.getElementById("site").value; sujet = document.getElementById("sujet").value; texte = document.getElementById("texte").value; verif = document.getElementById("verif").value; xhr = getXMLHttpRequest(); data = 'nom='+escape(nom); xhr.open("POST", "http://beta.live-linux.fr.nf/site/templates/mail.php", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(data); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { callback(xhr.responseText); document.getElementById("loed").style.display = "none"; document.getElementById("mail").style.display = "inline"; } else if (xhr.readyState < 4) { document.getElementById("loed").style.display = "inline"; document.getElementById("mail").style.display = "none"; } else if (xhr.status == 500 ) { document.getElementById("loed").style.display = "none"; document.getElementById("mail").style.display = "inline"; } }; } function readData(sData) { alert(sData); }
Le code php qui reçois la réponse :
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
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 <div id="right"> <div id="mail" > <form method="post" > <br /> <fieldset class="connection"> <legend>.: Mail :.</legend> <br /> <table class="tableau"> <tr> <td><p>Nom : </p></td> <td><input type="text" id="nom" /></td> <td><em>ereur</em></td> </tr> <tr> <td><p>Prénom : </p></td> <td><input type="text" id="prenom" /></td> <td><em>ereur</em></td> </tr> <tr> <td><p>E-mail : </p></td> <td><input type="text" id="email" /></td> <td><em>ereur</em></td> </tr> <tr> <td><p>Site internet ( facultatif ) : </p></td> <td><input type="text" id="site" value="http://" /></td> </tr> <tr> <td> <p>Sujet : </p></td> <td> <input type="text" id="sujet" /></td> <td><em>ereur</em></td> </tr> </table> <br /> <textarea name="texte" id="texte">Taper votre texte</textarea> <br /> </fieldset> <br/> <fieldset class="connection"> <legend>.: Traitement :.</legend> <br /> <center> <a onclick=""><img id="image" src="http://beta.live-linux.fr.nf/site/libs/captcha/captcha.php" alt="image de protection" /></a><br /> <p>recopier les chifres : <input type="text" id="verif" size="10" maxlength="5" /><em> ereur</em></p> <p><button onclick="request(readData);">GO</button></p> </center> <br /> </fieldset> </form> </div> <div id="loed" style="display: none;"> <br/><br/><br/><br/> <center> <img src="http://beta.live-linux.fr.nf/site/ajax.gif" alt="chargement" /> <p>Envoy du mail en cours</p> </center> </div> <div id="reusii" style="display: none;"> <br/><br/><br/><br/> <center> <h1>Envoy reussi</h1> </center> </div> </div>
Pour ceux que ça peut aider ici l'adresse du formulaire : http://beta.live-linux.fr.nf/site/contact
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php echo $_POST['nom']; ?>
Un grand merci de votre aide.
Partager