[AJAX] passage de valeur pour une page php depuis un formulaire
Bonjour!
Je me met à l'ajax, c'est pa mal du tout! :P
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:
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:
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:
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!