Partage
  • Partager sur Facebook
  • Partager sur Twitter

Callback

    27 septembre 2009 à 16:15:11

    Bonjour, alors voila je me suis renseigné sur callback et c'est ce qu'il me faut pour mon script mais je ne sais pas du tout l'utiliser n'ayant casi pas fait de javascript ^^
    Il faudrait que lorsque le visiteur clique sur l'image la variable clique augmente de +1 et qu'une alert me dit : vous avez cliqué '.$clique.' fois.

    Si vous pouviez m'aider car je suis en train de me casser la tête.

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      27 septembre 2009 à 16:57:30

      <button onclick="alert('~'+(this.i?++this.i:(this.i=1))+'~');">--'</button>
      
      • Partager sur Facebook
      • Partager sur Twitter
        27 septembre 2009 à 16:59:59

        :D Et on cherche toujours le rapport avec "callback" :D
        • Partager sur Facebook
        • Partager sur Twitter
          27 septembre 2009 à 17:03:47

          Hey golmote, c'est bizarre, mon code, si je vire les window. il merde oO

          Une explication? :o
          • Partager sur Facebook
          • Partager sur Twitter
            27 septembre 2009 à 17:08:00

            Tu sais maintenant pourquoi il est déconseillé de mettre des variables (et surtout des déclarations) dans les onclick ? :p

            Je sais pas précisément, mais je suppose que la variable ne se déclare pas automatiquement en globale... aussi étrange que cela paraisse...
            • Partager sur Facebook
            • Partager sur Twitter
              27 septembre 2009 à 17:10:18

              Citation : Golmote

              Tu sais maintenant pourquoi il est déconseillé de mettre des variables (et surtout des déclarations) dans les onclick ? :p



              J'allais pas non plus faire un code propre a un mec qui ne connait pas le JS :-°

              J'ai edit, histoire de pas avoir de variable globale qui traine ;o
              • Partager sur Facebook
              • Partager sur Twitter
                27 septembre 2009 à 17:17:50

                Ah, bien joué l'idée du this ;)

                En version propre, j'aurais fait un truc du genre...

                machin.onclick = (function(i){
                  return function() {
                    alert(i++);
                  };
                })(1);
                
                • Partager sur Facebook
                • Partager sur Twitter
                  27 septembre 2009 à 17:22:12

                  Nous n'avons pas les mêmes valeurs :D
                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 septembre 2009 à 20:41:47

                    Donc il faudrait que je fasse une variable JS mais sachant que je fais cela selon une données de ma bdd je peux faire :
                    var = nombre + <?php echo $donnees['clique'] ; ?>

                    Sachant que je veux afficher le bouton seulement si ma variable = 5
                    • Partager sur Facebook
                    • Partager sur Twitter
                      28 septembre 2009 à 13:46:47

                      ... Pas tout compris là... Tu veux afficher quel bouton si la variable vaut 5 ?

                      J'ai l'impression que ton problème est un tout petit peu plus complexe que ce que tu as présenté au départ... Ca pourrait être bien de tout nous expliquer concrètement...
                      Parce que là, c'est franchement pas clair.

                      Sinon, pour répondre à ton dernier message (bien que je ne voie pas le rapport avec ce qui précède), il te suffit de faire une condition non ?

                      <script>
                      var nombre = <?php echo $donnees['clique']; ?>;
                      if(nombre>5) {
                        // afficher le fameux et mystérieux bouton
                      }
                      </script>
                      
                      • Partager sur Facebook
                      • Partager sur Twitter
                        28 septembre 2009 à 13:48:00

                        Ce serait mieux de faire la condition en PHP... parce que... c'est pas très sécurisé sinon ^^
                        • Partager sur Facebook
                        • Partager sur Twitter
                          28 septembre 2009 à 15:12:32

                          Jvais essayer d'être le pluc clair possible cette fois ci :p

                          Je souhaite faire un script de vote pour des musiques. Un membre n'a droit qu'à 5 votes.
                          Donc je rentre dans la bdd combien de fois il a voté mais si il arrête au bout de 2 votes et qu'il revient après 3 jours pour faire ces 3 derniers votes je souhaite que ça reprenne à 2 et non 0.

                          En gros :


                          Si le membre a voté 5 fois, le bouton voter ne s'affiche pas.
                          Sinon le bouton s'affiche et à chaque clique ça rentre dans la bdd le vote (ça c'est bon ça marche, je l'ai fait en ajax) et une boite d'alert s'affiche disant il vous reste X vote(s) :
                          Par exemple 5-2-3 :
                          5=vote maximum
                          2=vote déjà fait avant
                          3=vote qu'il vient de faire sans recharger la page

                          Je ne veux pas qu'il y aie de chargement de page donc c'est ça le plus dire sinon ça aurait été plus simple
                          • Partager sur Facebook
                          • Partager sur Twitter
                            28 septembre 2009 à 15:46:31

                            <button id="bt" style="display: none;">Toh</button>
                            <script type="text/javascript">
                            var votecount = <?php echo (int)$vote; ?>;
                            
                            if (votecount < 5) {
                            	document.getElementById('bt').style.display = 'block';
                            	document.getElementById('bt').onclick = function() {
                            		votecount++;
                            		
                            		if (votecount >= 5) {
                            			this.style.display = 'none';
                            		}
                            		// Ta fonction ajax ici
                            		
                            	};
                            }
                            </script>
                            
                            • Partager sur Facebook
                            • Partager sur Twitter
                              28 septembre 2009 à 15:52:52

                              Okay donc ça donne ça si j'ai bien compris

                              <img id="bt" onclick="request('donne/donne_jtop.php','votant');return(false);"   src="voter.png" alt="votez!"/>
                              $vote=mysql_query('SELECT nbre_vote FROM w_votant_jtop WHERE pseudo="'.$_SESSION['pseudo'].'"')or die(mysql_error());
                              $vote=mysql_fetch_assoc($vote);
                              <script type="text/javascript">
                              var votecount = <?php echo (int)$vote['nbre_vote']; ?>;
                              
                              if (votecount < 5) {
                              	document.getElementById('bt').style.display = 'block';
                              	document.getElementById('bt').onclick = function() {
                              		votecount++;
                              		
                              		if (votecount >= 5) {
                              			this.style.display = 'none';
                              		}
                              		// Ma fonction est faite "dans" l'image
                              		
                              	};
                              }
                              </script>
                              
                              • Partager sur Facebook
                              • Partager sur Twitter
                                28 septembre 2009 à 15:54:37

                                <img id="bt" src="voter.png" alt="votez!"/>
                                $vote=mysql_query('SELECT nbre_vote FROM w_votant_jtop WHERE pseudo="'.$_SESSION['pseudo'].'"')or die(mysql_error());
                                $vote=mysql_fetch_assoc($vote);
                                <script type="text/javascript">
                                var votecount = <?php echo (int)$vote['nbre_vote']; ?>;
                                
                                if (votecount < 5) {
                                	document.getElementById('bt').style.display = 'block';
                                	document.getElementById('bt').onclick = function() {
                                		votecount++;
                                		
                                		if (votecount >= 5) {
                                			this.style.display = 'none';
                                		}
                                                // Alors sors ta fonction de l'image 
                                	        request('donne/donne_jtop.php','votant');
                                		
                                	};
                                }
                                </script>
                                
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  28 septembre 2009 à 15:56:05

                                  Non car la requête ajax n'aura pas lieu la.

                                  <img id="bt" src="voter.png" alt="votez!"/>
                                  <?php
                                  $vote=mysql_query('SELECT nbre_vote FROM w_votant_jtop WHERE pseudo="'.$_SESSION['pseudo'].'"')or die(mysql_error());
                                  $vote=mysql_fetch_assoc($vote);
                                  ?>
                                  <script type="text/javascript">
                                  var votecount = <?php echo (int)$vote['nbre_vote']; ?>;
                                  
                                  if (votecount < 5) {
                                  	document.getElementById('bt').style.display = 'block';
                                  	document.getElementById('bt').onclick = function() {
                                  		votecount++;
                                  		
                                  		if (votecount >= 5) {
                                  			this.style.display = 'none';
                                  		}
                                  		// Ma fonction est faite "dans" l'image
                                  		request('donne/donne_jtop.php','votant');
                                  		
                                  	};
                                  }
                                  </script>
                                  


                                  Edit: Grilled :(
                                  Image utilisateur
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    28 septembre 2009 à 16:05:21

                                    Bon je sais, je dois surement t'embêter beaucoup ><
                                    Mais j'ai aucun alert qui s'affiche quand je clique :o
                                    Jvais chercher mais si tu pouvais m'aider aussi ^^

                                    Revoila le code :p

                                    while($donnees=mysql_fetch_assoc($reponse))
                                    		{
                                    			echo '<hr /><table width="350px"><tr><td rowspan="2"><center><img src="'.$donnees['image'].'" alt="'.$donnees['titre'].'"/></center></td>
                                    			<td colspan="2" style="background-color:orange;"><center><strong>'.$donnees['groupe'].'</strong></center></td></tr>
                                    			<tr><td><center>'.$donnees['titre'].'</center></td><td><center>';?><img id="bt" src="voter.png" alt="votez!"/></td></table>
                                    			
                                    			<?php
                                    		}
                                    			$vote=mysql_query('SELECT COUNT(*) nbre_vote FROM w_vote_jtop WHERE pseudo="'.$_SESSION['pseudo'].'"')or die(mysql_error());
                                    			$vote=mysql_fetch_assoc($vote);
                                    			?>
                                    			<script type="text/javascript">
                                    			var votecount = <?php echo (int)$vote['nbre_vote']; ?>;
                                    
                                    			if (votecount < 5) {
                                    			document.getElementById('bt').style.display = 'block';
                                    			document.getElementById('bt').onclick = function() {
                                    				votecount++;
                                    				
                                    				if (votecount >= 5) {
                                    					this.style.display = 'none';
                                    				}
                                    						// Alors sors ta fonction de l'image 
                                    					request('donne/donne_jtop.php','votant');
                                    				
                                    			};
                                    		}
                                    		</script>
                                    
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      28 septembre 2009 à 16:09:40

                                      <img id="bt" src="voter.png" alt="votez!"/>
                                      <?php
                                      $vote=mysql_query('SELECT nbre_vote FROM w_votant_jtop WHERE pseudo="'.$_SESSION['pseudo'].'"')or die(mysql_error());
                                      $vote=mysql_fetch_assoc($vote);
                                      ?>
                                      <script type="text/javascript">
                                      var votecount = <?php echo (int)$vote['nbre_vote']; ?>;
                                      
                                      if (votecount < 5) {
                                      	document.getElementById('bt').style.display = 'block';
                                      	document.getElementById('bt').onclick = function() {
                                      		votecount++;
                                      		alert("Vous avez voté "+votecount+" fois");
                                      		if (votecount >= 5) {
                                      			this.style.display = 'none';
                                      		}
                                      		// Ma fonction est faite "dans" l'image
                                      		request('donne/donne_jtop.php','votant');
                                      		
                                      	};
                                      }
                                      </script>
                                      


                                      L'alert ne s'affichait pas sans doute parce qu'elle n'était plus présente dans le code... :-°
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        28 septembre 2009 à 16:15:21

                                        Ca marche, un grand merci à vous tous.
                                        Je crois que je vais apprendre sérieusement le JS ^^
                                        Vous me proposez quel script sur sdz pour le java car il y en a 2/3 donc le quel est le mieux ...
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          28 septembre 2009 à 16:18:09

                                          Quel rapport entre java et JS ?
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            28 septembre 2009 à 16:19:40

                                            Javascript je me suis trompé ^^
                                            Donc vous (tu) me proposerez lequel pour avoir de bonnes connaissances solides en JavaScript ?
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              28 septembre 2009 à 16:26:53

                                              Big Tuto suivi des bonnes pratiques
                                              Pour commencer.
                                              Puis AJAX pour communiquer avec le serveur.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                3 octobre 2009 à 14:03:44

                                                Bon désolé de déranger mais enfaite je viens de remarquer que la fonction ne s'effectue que dans le premier boutton dans le while. Comment pourrais-je faire pour quelle fonctionne sur tous les boutons. J'ai testé de faire name="bt" et autre.

                                                Voici le code

                                                $vote=mysql_query('SELECT COUNT(*) nbre_vote FROM w_vote_jtop WHERE pseudo="'.$_SESSION['pseudo'].'"')or die(mysql_error());
                                                			$vote=mysql_fetch_assoc($vote);
                                                			
                                                		while($donnees=mysql_fetch_assoc($reponse))
                                                		{
                                                		
                                                		
                                                			echo '<hr /><table width="350px"><tr><td rowspan="2"><center><img src="'.$donnees['image'].'" alt="'.$donnees['titre'].'" style="width:200px;"/></center></td>
                                                			<td colspan="2" style="background-color:orange;"><center><strong>'.$donnees['groupe'].'</strong></center></td></tr>
                                                			<tr><td><center>'.$donnees['titre'].'</center></td><td><center><button name="bt">Votez! </button></span></td></table>';
                                                			?>
                                                			<script type="text/javascript">
                                                var votecount = <?php echo (int)$vote['nbre_vote']; ?>;
                                                
                                                if (votecount < 5) {
                                                	document.getElementByName('bt').style.display = 'block';
                                                	document.getElementByName('bt').onclick = function() {
                                                		votecount++;
                                                		alert("Vous avez voté "+votecount+" fois");
                                                		if (votecount >= 5) {
                                                			this.style.display = 'none';
                                                		}
                                                		// Ma fonction est faite "dans" l'image
                                                		request('donne/donne_jtop.php','votant');
                                                		
                                                	};
                                                }
                                                </script>
                                                
                                                		
                                                			<?php
                                                		}
                                                
                                                • Partager sur Facebook
                                                • Partager sur Twitter

                                                Callback

                                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                • Editeur
                                                • Markdown