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:
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&nbsp;:('.$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/>';
    }
  }
?>
Comment doit je faire pour que ceci communique avec Ajax ???
j'ai essayer ceci:
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);
      }
    }
  }
}
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
 
[<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>
Comment arranger tout ceci pour que cela fonctionne je suis un peut perdu ma déjà fallu du temps pour écrire sa