Pb requete ajax prototype.

Eléphanteau du PHP | 10 Messages

08 avr. 2009, 18:50

Bonsoir,

Après des heures et des heures de galères et de recherches je finis finalement pas solliciter votre aide parce que j'en peux vraiment plus.

Notez que je debute en Ajax.

Le problème : je n'arrive pas a récupérer les variable $_POST dans mon fichier starate.php

Explication :
Pour mon système de vote étoile j'utilise Starbox qui est fort sympathique , un fois que le visiteur vote j'utilise une fonction pour effectuer ma requête Ajax :

function saveStar(event) {
  new Ajax.Request('starate.php', {
        parameters: event.memo,
	method: 'post',
        onComplete: function(xhr) {
      // callback
    }
  });
}

document.observe('starbox:rated', saveStar);
J'y comprend un peu rien, dans mon fichier starate.php il y a une requête mysql INSERT INTO qui marche mais aucune valeur $_post n'est transmise donc sa me rajoute des ligne vide

J'ai aussi changer starate.php par une fonction que me renvoi tout les $_post et $_get sur un fichier texte mais rien aucune variable j'ai du louper un truc .

J'ai aussi tester avec Firebug , une fois que j'ai cliqué pour voter il me rajoute une ligne dans l'onglet réseau "POST starate.php" et quand j'ouvre la ligne dans l'onglet Post il n'y a rien du tout :s
(ni dans l'onglet réponse)

Je vous donne le code en entier :
<script language='javascript' type='text/javascript'>
function saveStar(event) {
  new Ajax.Request('testeur.php', {
        parameters: event.memo,
	method: 'post',
        onComplete: function(xhr) {
      // optional callback
    }
  });
}

document.observe('starbox:rated', saveStar);
document.observe('starbox:rated', function(event) {
  // event.memo holds important information like event.memo.rated
  var memo = '';
  for(var i in event.memo)
  memo += i + ' : ' + event.memo[i] + '\n';
  alert(memo);

  // should you ever need the starbox element itself, use Event#findElement:
  new Effect.Pulsate(event.findElement('.starbox'));
});

</script>

<form class="right3" id='<?php echo $id; ?>' name="<?php echo $id; ?>" action="" method="post" >
<img src='../images/loading.gif' >
<input type="hidden" value="<?php echo $plateforme; ?>" name="plat" >
<input type="hidden" value="<?php echo $nom; ?>" name="nom" ></form>

<script language='javascript' type='text/javascript'>
		    new Starbox('<?php echo $id; ?>', <?php echo $note; ?>, 
						{ rerate: false, indicator: 'Not&eacute; #{average} pour #{total} votes', total: <?php echo $total; ?>, onRate: function(element, info) {
             						 var indicator = element.down('.indicator');
             						 indicator.update('Votre note ' + (info.rated).toFixed(2));
									// alert((info.rated).toFixed(2));
             						 window.setTimeout(function() { indicator.update('Merci de participer') }, 2200);
             						 new Effect.Highlight(indicator);
									}
						});
		  </script>
J'ai aussi essayé de passer mes variables $nom et $plateforme dans des input type hidden mais rien.
Il y a aussi un alert(memo); qui ne renvoi rien .

J'espère qu'un génie passera par la :D

Merci beaucoup .[/php]

Mammouth du PHP | 1339 Messages

09 avr. 2009, 01:21

Je ferais un truc comme ca :

Code : Tout sélectionner

new Starbox('<?php echo $id; ?>', <?php echo $note; ?>, { rerate: false, indicator: 'Not&eacute; #{average} pour #{total} votes', total: <?php echo $total; ?>, onRate: function(element, info) { var indicator = element.down('.indicator'); indicator.update('Votre note ' + (info.rated).toFixed(2)); // alert((info.rated).toFixed(2)); window.setTimeout(function() { indicator.update('Merci de participer') }, 2200); new Effect.Highlight(indicator); // Tu lances ton ajax new Ajax.Request('starate.php', { parameters: 'le_nom_de_ta_variable='+info.rated.toFixed(2), method: 'post', asynchronous: false, evalScripts: true }); } });
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphanteau du PHP | 10 Messages

09 avr. 2009, 01:45

Merci Merci beaucoup elie,
Je tournais autour du pot, ça y est sa marche niquel :)

C'est toi le génie :D
Vraiment sympa l' Ajax.

Mammouth du PHP | 1339 Messages

09 avr. 2009, 01:47

Prototype est une FrameWork tres performent ...

Je te conseille d'aller voir http://scripteka.com/
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphanteau du PHP | 10 Messages

09 avr. 2009, 14:23

Super ton lien double merci ,

Je pensais pas que y'en avais autant, j'ai du boulot !!! :D