[Resolu] Pbm de "récupération de paramètres" avec Ajax.Request

Pbm de "récupération de paramètres" avec Ajax.Request [Resolu] - HTML/CSS - Programmation

Marsh Posté le 29-10-2008 à 14:34:26    

J'essaye d'updater ma base de donnée "à la volée" en utilisant Ajax.Request (fonction de la librairie prototype)
 

Code :
  1. function mafonction2(event, info) {
  2. var url = 'updatenote.php';
  3. alert(info.id_user);
  4. alert(info.id_use);
  5. alert(info.rated);
  6. var pars = 'rated='+info.rated+'&id_use='+info.id_use+'&id_user='+info.id_user;
  7. alert(pars);
  8. var myAjax = new Ajax.Request(
  9.  url,
  10.  {
  11.   method: 'post',
  12.   parameters: pars,
  13.  }
  14. );
  15. }


 
et pour info le fichier updatenote.php
 

Code :
  1. $host = "***";
  2. $login = "***";
  3. $pass = "***";
  4. $bdd = "***";
  5.         mysql_connect($host,$login,$pass);
  6.         mysql_select_db($bdd);
  7.         mysql_query("UPDATE pl_notes SET note='".$_POST('rated')"' WHERE id_element='".$_POST('id_use')."' AND id_membre='".$_POST('id_user')."'" ) or die(mysql_error());
  8.         mysql_close();


 
J'ai vérifié toutes les variable avec alert et info.id_user, info.id_use, info.rated sont renseigné : pars me donne quelque chose comme ca : rated=5&id_use=2&id_user=1 ce qui me semble correct j'ai essayé tour à tour en get et en post (en modifiant updatenote.php en conséquence) sans plus de succés j'ai tenté de remplacer parameters par postBody sans plus de succés j'ai tenté de faire un Ajax.update au quel cas je recois une erreure dans la div updaté :
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /mnt/102/free.fr/d/b/samael.messagerie/liste/updatenote.php on line XX
XX étant la première ligne ou je fait appel a un $_POST('rated') ou $_GET('rated') (id_use ou id_user déclencheant la meme erreur)
 
J'en déduis que ce sont les paramétres qui ne passe pas mais je n'arrive pas à régler le probleme malgré des tentatives de type :

Code :
  1. parameters: {rated: info.rated, id_use: info.id_use, id_user: info.id_user}


ou

Code :
  1. parameters: info


 
pour info le meme probleme se produit avec la copie conforme de cette fonction pour un fichier addnote.php (avec un INSERT)
mais je n'ai aucun proble a updater ou un inserer un élément dans la base si je me contente de par exemple :
mysql_query("INSERT INTO pl_elements VALUES('', 'CA_MARCHE22')" ) or die(mysql_error());
ca ne bug que si je fais appel à des valleurs supposée transmise par post/get
 
 
Est-ce que quelqu'un aurait une idée ?


Message édité par Xilrian_ le 29-10-2008 à 18:30:29
Reply

Marsh Posté le 29-10-2008 à 14:34:26   

Reply

Marsh Posté le 29-10-2008 à 15:18:33    

tu peu faire un  
parameters:Form.serialize(form);

Reply

Marsh Posté le 29-10-2008 à 15:54:52    

J'ai essayé un :
 var pars = Form.serialize(info);
Ca ne marche pas (rien ne se passe je pense que "mafonction2" n'est pas exécutée)  mais info n'est pas un formulaire j'imagine que c'est pour ca (je n'ai pas de form en entrée nul part)...
 
Une autre idée ?
pars vous semble t'il etre construit correctement ?  

Reply

Marsh Posté le 29-10-2008 à 16:18:06    

note='".$_POST('rated')"'
a remplacer par  
note='".$_POST('rated')."'
 
(il te manque un point )

Reply

Marsh Posté le 29-10-2008 à 17:34:00    

Bonne remarque malheureusement aprés modification ca ne marche toujours pas :(
 
il doit y avoir une seconde erreure autre part...
 
(quelque chose qui affecte ce que j'envois via parameters je pense)
 
Merci à vous deux pour vos propositions ^^


Message édité par Xilrian_ le 29-10-2008 à 17:45:36
Reply

Marsh Posté le 29-10-2008 à 17:57:35    

quand tu execute ta page updatenote.php avec des bons paramètres ca fonctionne ?

Reply

Marsh Posté le 29-10-2008 à 18:23:07    

Je n'avais pas pensé à faire ca et je pense que tu viens de beaucoup m'aider ...
vu que ca me semble un chouilla plus long de faire le test en post j'ai repassé les paramètres en get
 
et ca me donne la meme erreure :
"Fatal error: Call to undefined function: array() in /mnt/102/free.fr/d/b/samael.messagerie/liste/updatenote.php on line 8"
 
on récapitule pour le test je fais donc :
updatenote.php?rated=5&id_use=1&id_user=1
 
le code de updatenote.php étant :
 

Code :
  1. <?php
  2.  $host = "***";
  3. $login = "***";
  4. $pass = "***";
  5. $bdd = "***";
  6.         mysql_connect($host,$login,$pass);
  7.         mysql_select_db($bdd);
  8.         mysql_query("UPDATE pl_notes SET note='".$_POST('rated')."' WHERE id_element='".$_POST('id_use')."' AND id_membre='".$_POST('id_user')."'" ) or die(mysql_error());
  9.         mysql_close();
  10. ?>


 
Sachant que remplacer la requete "        mysql_query("UPDATE pl_notes SET note='".$_POST('rated')."' WHERE id_element='".$_POST('id_use')."' AND id_membre='".$_POST('id_user')."'" ) or die(mysql_error()); "
par un simple echo $_POST('id_user'); me générera la meme erreure...
 
je localise l'erreure mais je ne la comprend toujours pas

Reply

Marsh Posté le 29-10-2008 à 18:25:33    

c'est pas $_GET('pwet') , mais  $_GET['pwet']

Reply

Marsh Posté le 29-10-2008 à 18:31:36    

Génial je suis con (pour l'erreure) mais la j'imagne que ca va marcher :) j'éditerai pour confirmer  
merci infiniement en tous cas
 
EDIT: Pas de problème ca marche nikel :)


Message édité par Xilrian_ le 29-10-2008 à 18:36:01
Reply

Sujets relatifs:

Leave a Replay

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