Mise à jour base données par ajax avec variables POST

Mise à jour base données par ajax avec variables POST - HTML/CSS - Programmation

Marsh Posté le 08-02-2008 à 11:33:05    

Bonjour,
 
Je n'arrive pas à faire une mise à jour dans ma base de données en ajax en passant des variables par POST.
J'ai un formulaire avec des champs texte. Quand je clique sur un bouton VALIDER je fais appel à une fonction javascript qui me récupère la valeur de tous les champs, et ensuite, par Ajax, je veux mettre à jour ma base de données avec ces champs que j'ai récupéré.
J'ai essayé par la méthode GET Ajax, cela marche mais inconvénient les retours ligne dans ma zone de texte ne sont pas pris en compte. Alors j'ai pensé plutôt le faire par la méthode POST mais toujours en Ajax si c'est possible.
Voici ma fonction Javascript :
 
function ActionValiderHaut()
  {
  wFinessG=document.getElementById('FinessG').value;
  wAcBonUsagSoin=document.getElementById('AcBonUsagSoin').value;
  wAcBonUsagMed=document.getElementById('AcBonUsagMed').value;
  wCPOM=document.getElementById('CPOM').value;
  wLienHAS=document.getElementById('LienHAS').value;
  wDateCertif=document.getElementById('DateCertif').value;
  wNotes=document.getElementById('Notes').value;
 
  var xhr=null;
 xhr=new ActiveXObject("Microsoft.XMLHTTP" );
 chaine="http://"+window.location.host+"/AppLocales/Grece/Cooperation/modificationCoop.php";
  xhr.onreadystatechange=function() { if (xhr.readyState==4) { alert("Mise à jour effectuée" ); } }
   
  xhr.open("POST",chaine,true);
  var donnees="ModCoopBas=nok"+"FinessG="+wFinessG+"AcBonUsagSoin="+wAcBonUsagSoin+"AcBonUsagMed="+wAcBonUsagMed+"CPOM="+wCPOM+"LienHAS="+wLienHAS+"DateCertif="+wDateCertif+"Notes="+wNotes;
 
 xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
 xhr.send(donnees);
  }

 
Le fichier "ModificationCoop.php" que j'appelle doit faire la mise à jour.
 
Mon soucis est que d'abord, je ne sais pas si ma fonction ci-dessus est correcte. Deuxièmement, je ne sais pas comment récupérer dans le fichier "ModificationCoop.php" les champs passés dans la fonction javascript pour pouvoir faire la mise à jour.
 
Merci pour votre aide !
 
N.G

Reply

Marsh Posté le 08-02-2008 à 11:33:05   

Reply

Marsh Posté le 08-02-2008 à 11:39:11    

nagard a écrit :

Bonjour,
 
Je n'arrive pas à faire une mise à jour dans ma base de données en ajax en passant des variables par POST.
J'ai un formulaire avec des champs texte. Quand je clique sur un bouton VALIDER je fais appel à une fonction javascript qui me récupère la valeur de tous les champs, et ensuite, par Ajax, je veux mettre à jour ma base de données avec ces champs que j'ai récupéré.
J'ai essayé par la méthode GET Ajax, cela marche mais inconvénient les retours ligne dans ma zone de texte ne sont pas pris en compte. Alors j'ai pensé plutôt le faire par la méthode POST mais toujours en Ajax si c'est possible.
Voici ma fonction Javascript :
 
function ActionValiderHaut()
  {
  wFinessG=document.getElementById('FinessG').value;
  wAcBonUsagSoin=document.getElementById('AcBonUsagSoin').value;
  wAcBonUsagMed=document.getElementById('AcBonUsagMed').value;
  wCPOM=document.getElementById('CPOM').value;
  wLienHAS=document.getElementById('LienHAS').value;
  wDateCertif=document.getElementById('DateCertif').value;
  wNotes=document.getElementById('Notes').value;
 
  var xhr=null;
 xhr=new ActiveXObject("Microsoft.XMLHTTP" );
 chaine="http://"+window.location.host+"/AppLocales/Grece/Cooperation/modificationCoop.php";
  xhr.onreadystatechange=function() { if (xhr.readyState==4) { alert("Mise à jour effectuée" ); } }
   
  xhr.open("POST",chaine,true);
  var donnees="ModCoopBas=nok"+"FinessG="+wFinessG+"AcBonUsagSoin="+wAcBonUsagSoin+"AcBonUsagMed="+wAcBonUsagMed+"CPOM="+wCPOM+"LienHAS="+wLienHAS+"DateCertif="+wDateCertif+"Notes="+wNotes;
 
 xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
 xhr.send(donnees);
  }

 
Le fichier "ModificationCoop.php" que j'appelle doit faire la mise à jour.
 
Mon soucis est que d'abord, je ne sais pas si ma fonction ci-dessus est correcte. Deuxièmement, je ne sais pas comment récupérer dans le fichier "ModificationCoop.php" les champs passés dans la fonction javascript pour pouvoir faire la mise à jour.
 
Merci pour votre aide !
 
N.G


 
Pour la méthode POST il faut rajouter un & quand tu envoies plusieurs variables comme par exemple
 

Code :
  1. donnees="var1="+var1+"&var2="+var2+"&var3"=+var3;
  2. xhr.send(donnees);


Message édité par alpachinois le 08-02-2008 à 11:40:01
Reply

Marsh Posté le 08-02-2008 à 12:51:30    

Merci beaucoup Alpachinois, ça fonctionne !

Reply

Marsh Posté le 08-02-2008 à 13:04:05    

Puis-je abuser encore un peu? Comme je disais ci-dessus ça fonctionne, mais les caractères spéciaux styles lettre avec accent, une fois mise à jour dans la base de données, s'affichent avec des signes cabalistiques à la fois à l'écran et dans la base de données !!!

Reply

Marsh Posté le 08-02-2008 à 13:18:32    

nagard a écrit :

Puis-je abuser encore un peu? Comme je disais ci-dessus ça fonctionne, mais les caractères spéciaux styles lettre avec accent, une fois mise à jour dans la base de données, s'affichent avec des signes cabalistiques à la fois à l'écran et dans la base de données !!!


 

Code :
  1. xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');


 
Remplace UTF-8 par charset=iso-8859-15 pour voir.

Reply

Marsh Posté le 08-02-2008 à 13:22:08    

Désolé, c'est toujours pareil !

Reply

Marsh Posté le 08-02-2008 à 15:15:02    

Essaies de mettre ça dans ton fichier php appelé aussi pour voir : header('Content-Type: text/html; charset=ISO-8859-15');


Message édité par alpachinois le 08-02-2008 à 15:16:06
Reply

Marsh Posté le 11-02-2008 à 08:40:34    

J'ai déjà essayé et j'ai toujours des caractères bizarres à la place des accents

Reply

Marsh Posté le 11-02-2008 à 09:19:53    

Bon j'ai trouvé une solution : il faut utiliser la fonction utf8_decode() sur le champ avant de faire la mise à jour dans la base de données.
Merci quand même

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed