Pb requete ajax prototype.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Pb requete ajax prototype.

par valium » 09 avr. 2009, 14:23

Super ton lien double merci ,

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

par Elie » 09 avr. 2009, 01:47

Prototype est une FrameWork tres performent ...

Je te conseille d'aller voir http://scripteka.com/

par valium » 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.

par Elie » 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 }); } });

Pb requete ajax prototype.

par valium » 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]