Bonjour j'aimerai faire une requete asynchrone avec ajax via un script php plutot simple.
pour l'instant ce script est pas tres optimisé faut dire et c'est pour cela qu'ajax me semble très bien.
Le problème c'est que je n'arrive pas a comprendre le fonctionnement.
Voici mon script php simple:
Comment doit je faire pour que ceci communique avec Ajax ???
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 <?php error_reporting(0); $id_email = 0; $email = ''; se_connecter(); if(isset($_POST['new_contact'])) { $id_email = isset($_POST['id'])?($_POST['id']):0; $email = isset($_POST['email'])?($_POST['email']):''; if (empty($email)) { echo '<span class="reponse_newsletters">Vous devez remplir le champ</span>'; $erreur = true; } else { if (!eregi('^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-_.]?[0-9a-z])*\\.[a-z]{2,4}$',$email)) { echo '<span class="reponse_newsletters">L\'adresse e-mail n\'est pas correcte :('.$email.')</span>'; $erreur = true; } } if($erreur == false) { // On vérifie si c'est une modification d'adresse ou pas if ($id_email == 0) { // Ce n'est pas une modification, on crée une nouvelle entrée dans la table query("INSERT INTO membernews VALUE ('','" . mysql_real_escape_string($email) . "')"); } echo '<span class="reponse_newsletters">merci pour votre inscription</span>'; echo '<span class="reponse_newsletters">'.$email.'</span><br/>'; } } ?>
j'ai essayer ceci:
Mon script php est pas mal sans ajax mais j'aimerai vraiment afficher mes messages d'erreur ou de réussite via reponseTexte
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 var requete = null; try { requete = new XMLHttpRequest(); } catch (essaimicrosoft) { try { requete = new ActiveXObject("Msxml2.XMLHTTP"); } catch (autremicrosoft) { try { requete = new ActiveXObject("Microsoft.XMLHTTP"); } catch (echec) { requete = null; } } } if (requete == null) alert("Impossible de créer l'objet requête!"); function actualiserPage() { if (requete.readyState == 4) { if (requete.status == 200) { /* Obtenir la réponse du serveur */ var adresseMail = requete.responseText; /* Mettre à jour le HTML du formulaire web */ document.getElementById("email").value = adresseMail; } else alert("Erreur ! Le statut de la requête est " + requete.status); } } function soumettreEmail() { var email = document.getElementById("email").value; var url = "verif_mail.php"; requete.open("POST", url, true); requete.onreadystatechange = afficherConfirmation; requete.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); requete.send("email=" + escape(mail)); } function afficherConfirmation() { if (requete.readyState == 4) { if (requete.status == 200) { var reponse = requete.responseText; // Localiser le formulaire dans la page var divPrincipal = document.getElementById("principale"); var formulaireCde = document.getElementById("formulaire"); // Créer un texte de confirmation pElement = document.createElement("p"); textNode = document.createTextNode("Votre adresse mail est " + reponse); pElement.appendChild(textNode); // Remplacer le formulaire par la confirmation divPrincipal.replaceChild(pElement, formulaireCde); } else { var message = requete.getResponseHeader("Statut"); if ((message == null) || (message.length <= 0)) { alert("Erreur ! Le statut de la requête est " + requete.status); } else { alert(message); } } } }
Comment arranger tout ceci pour que cela fonctionne je suis un peut perdu ma déjà fallu du temps pour écrire sa
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 [<div id="principale"> <form id="formulaire"/> <input type="text" name="email" ?>" maxlength="30" id="email" /> <input type="hidden" name="id" id="id" /><br /> <input type="bouton" name="new_contact" value="Envoi" onClick="soumettreEmail();" /> <input type="reset" value="Reset" /> </div>
Partager