Bonjour!
Je me met à l'ajax, c'est pa mal du tout!
J'en suis à mes débuts.

En ce moment à récupérer des valeurs de input pour les passer à une page php par l'intermédiaire d'un fichier javascript.

Le problème c'est que la page php ne recoit pas le contenue de mes variable!

Voici mon code html (plutot simple!)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<form method='POST' action='chat.php' name='formulaireenvoi'>
<input name='namemsg' id='idmsg' type='text'>
<input name='namepseudo' id='idpseudo' type='hidden' value='$pseudoEnCour'>
<input type='button' value='envoyer' onclick='javascript:envoyermessage(\"./envoyermessagechat.php\",\"idmsg\");'>
</form>
Au niveau de mon javascript voici les fonctions utiles :
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
 
function donnees_formatees()
{
  var formulaire=document.forms['formulaireenvoi'];
  //Valeur de mon formulaire de type texte :
  var namemsg=formulaire.namemsg.value;
  var namepseudo=formulaire.namepseudo.value;
  //Mise en place des données au format post :
  donneesformatees='messagephp='+escape(namemsg)+'&pseudophp='+escape(namepseudo);
  alert(donneesformatees);
  return donneesformatees;
}
 
function envoyermessage(url,cadre)
{
  //Création de l'objet xhr-----------------------------------------------------
  var xhr= null;
  if(window.XMLHttpRequest) // Firefox
  {  xhr= new XMLHttpRequest(); }
  else if(window.ActiveXObject) // Internet Explorer
  {  xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
  else
  { // XMLHttpRequest non supporté par le navigateur
   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
   return;
  }
  //----------------------------------------------------------------------------
 
  //Ouvre la connexion au serveur en précisant le type de données :
  xhr.open('POST',url,true);
  //On associe à une varible un contenue, ici pour le contenu de la page :
  xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
 
  // On regarde les changement d'état de l'objet xhr
  xhr.onreadystatechange = function attente(){  // l'état est à 4, requête reçu !
                                                if(xhr.readyState == 4)
                                               {  // ecriture de la réponse
                                                 document.getElementById(cadre).innerHTML = xhr.responseText;
                                               //alert(xhr.responseText);
                                               }
                                             }
 
  // Envoi la requete xhr au serveur :
  xhr.send(donnees_formatees());
 
  //remise à 0 de l'état du formulaire
  document.getElementById(cadre).value='';
  document.getElementById(cadre).focus();
  return;
}
note : quand je fait
alert(donneesformatees) j'obtient bien le nom des variables et les valeurs théoriques qu'elles doivent avoir.
par contre pour alert(xhr.responseText); j'ai le message : undefined variable messagephp ... undefined variable pseudophp...

Le code php :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
$message=mysql_real_escape_string($messagephp);
$dh=date('Y-m-d H:i:s');
 
$pseudo=mysql_real_escape_string($pseudophp);
 
   $sql_insert_msg="INSERT INTO message_chat (dh_msgchat,contenu_msgchat,pseudo_emetteur) VALUES ('$dh','$message','$pseudo')";
    $rep_insert_msg=mysql_query($sql_insert_msg) or die('Problème sql 02, chat actuellement indisponible');
Auriez vous une idée?
Merci!