IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Script de vote


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Par défaut Script de vote
    Bonjour,
    Je suis bloqué, j'espère que vous pourrez m'aider, d'avance un grand merci.

    j'ai actuellement un script de vote en PHP, qui permet a mes visiteurs de donner leur avis sur des articles (système de rating a étoiles).

    malheureusement il est séparé en deux, j'aimerais donc l'optimiser :
    j'ai une partie qui affiche le résultat des votes et l'autre partie qui permet de voter

    j'aimerai regrouper tout cela en une seule partie, qui m'affiche les résultats des votes mais quand on passe la souris dessus, que l'on puisse voter aussi...

    vous avez une idée de comment procéder ?

    voici mon code ?



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <p>Les Notes des lecteurs : </p>
     <?php 
            //averaging rating 
     
            $qur1 = "select count(ID) as dd, avg(NOTE) as xx from vote where ID_EVENT='".$_GET['event']."' group by ID_EVENT";
            $result1 = mysql_query($qur1);
            
            if($line = mysql_fetch_array($result1))
            {
                    $count = $line['dd'];
                    $rateval = $line['xx'];
            }
            else
                    $count = 0;
     
            for($i=1;$i<=5;$i++)
            {
                    if($rateval>=1)
                    {
                               echo "<img alt='tete' src=\"vote/etoiles/full1.gif\"/>";
                               $rateval=$rateval-1;
                    }
                    else if($rateval>=0.5)
                    {
                                    echo "<img alt='tete' src=\"vote/etoiles/full2.gif\"/>";
                                    $rateval=$rateval-1;
                    }
                    else if ($rateval<0.5 && $rateval>0)
                    {
                                    echo "<img alt='tete' src=\"vote/etoiles/full.gif\"/>";
                                    $rateval=$rateval-1;
                    }
                    else if($rateval<=0)
                    {
                                    echo "<img alt='tete' src=\"vote/etoiles/full3.gif\"/>";
                    }
            }       
    ?>
     
                <p>Votez pour cet article :</p> 
     
                <p><img name="i1" style="cursor:pointer" onmouseover="selstar(1)" onmouseout="remstar(1)" onclick="setrate(1)" alt="tete" src="vote/etoiles/full.gif"/><img name="i2" style="cursor:pointer" onmouseover="selstar(2)" onmouseout="remstar(2)" onclick="setrate(2)" alt="tete" src="vote/etoiles/full.gif"/><img name="i3" style="cursor:pointer" onmouseover="selstar(3)" onmouseout="remstar(3)" onclick="setrate(3)" alt="tete" src="vote/etoiles/full.gif"/><img name="i4" style="cursor:pointer" onmouseover="selstar(4)" onmouseout="remstar(4)" onclick="setrate(4)" alt="tete" src="vote/etoiles/full.gif"/><img name="i5" style="cursor:pointer" onmouseover="selstar(5)" onmouseout="remstar(5)" onclick="setrate(5)" alt="tete" src="vote/etoiles/full.gif"/></p>
                <form name="rate" method="post" action="<?php echo $hm2."../vote/ajout_vote.php" ?>">
    			<input type="hidden" name="rating"/>
                <input type="hidden" value="<?php echo $_GET['event']; ?>" name="id_kronik"/>
    			<input type="hidden" value="<?php echo $_SERVER['REQUEST_URI'];; ?>" name="url"/>
            </form>
    	<p><?php 
             echo "[&nbsp;".$count." votes]";
            ?></p>

    Salutations à tous

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faudrait que tu ajoutes tes fonctions javascript dans les images crées par la boucle for :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if($rateval>=1)
    		{
    echo '<img name="i' . $i .'" style="cursor:pointer" onmouseover="selstar('.$i.')" onmouseout="remstar('.$i.')" onclick="setrate('.$i.')" src="vote/etoiles/full1.gif" />';
    N'ayant pas les fonctions javascript, je ne garantie pas que ce fonctionne pile poil.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Par défaut
    Merci sabotage,
    ton message m'a beaucoup aidé à avancer

    cependant j'ai encore un petit souci, qui doit se trouver dans mon code javascript, quand je passe la souris sur mes étoiles c'est ok mais quand la souris s'enlève, au lieu de me ré-afficher le résultat des votes, il m'affiche à la place les votes à zéro.

    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    	var name = new Array();
    	name[0]= "webimages/etoiles/full.png";
    	if(document.images)
    	{
    		var ss = new Image();
    		ss.src = name[0];		
    	}	
     
    	function selstar(val)
        {
    		for(var x=1;x<=val;x++)
    		{
    			document['i'+x].src="webimages/etoiles/full.png";
    		}	
        }
        function remstar(val)
        {
    		for(var x=1;x<=val;x++)
    		{
    			document['i'+x].src="webimages/etoiles/empty.png";
    		}
        }
     
        function setrate(val)
        {
    		document.rate.rating.value=val;
    		document.rate.submit();
        }

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Là je pense que ça relève davantage du JS que du PHP...
    Mais a priori, je dirai qu'il faut que la fonction que tu appelles lorsque la souris quitte les étoiles connaisse la valeur initiale pour pouvoir replacer les étoiles à leur position d'origine...

    EDIT : message déplacé. on voit qu'on est lundi, faut que les utilisateurs me disent de faire mon boulot pour que j'y pense
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Par défaut
    Merci pour ta réponse Celira,
    effectivement là c'est surement au niveau du JavaScrip qu'il faut modifier quelque chose.
    Est-ce qu'un admin pourrait déplacer ce message ?

    je dirai qu'il faut que la fonction que tu appelles lorsque la souris quitte les étoiles connaisse la valeur initiale pour pouvoir replacer les étoiles à leur position d'origine...
    mais comment faire cela ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Par défaut
    il y a un souci avec la fonction "remstar", qui m'affiche le résultat du vote à zéro lors de "onmouseout". Comment faire pour ré-afficher le résultat des votes lorsque le pointeur de ma souris quitte l'image.

    voici mon code JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    	var name = new Array();
    	name[0]= "webimages/etoiles/full.png";
    	if(document.images)
    	{
    		var ss = new Image();
    		ss.src = name[0];		
    	}	
     
    	function selstar(val)
        {
    		for(var x=1;x<=val;x++)
    		{
    			document['i'+x].src="webimages/etoiles/full.png";
    		}	
        }
        function remstar(val)
        {
    		for(var x=1;x<=val;x++)
    		{
    			document['i'+x].src="webimages/etoiles/empty.png";
    		}
        }
     
        function setrate(val)
        {
    		document.rate.rating.value=val;
    		document.rate.submit();
        }
    et le php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
     <?php 
    if (! $_POST)
    {
            ?>
    	<form name="rate" method="post" action="#vote">
    		<input type="hidden" name="rating"/>
    		<input type="hidden" value="<?php echo $_GET['event']; ?>" name="id_event"/>
    		<input type="hidden" value="<?php echo $_SERVER['REQUEST_URI']; ?>" name="url"/>
    	</form>       
    	<?php
    } 
    else 
    {
                                       $ip = $_SERVER['REMOTE_ADDR'];
                                       $id_vote = 1;
                                       $id_event = $_POST['id_event'];
                                       $url = $_POST['url'];
                                       
                                       $r_vote = mysql_query("Select ID from vote where ID_EVENT = '".$id_event."' and ID_VOTE = '".$id_vote."' and IP = '".$ip."'");
                                       
                                       if(mysql_num_rows($r_vote)==0 && $id_event > 0)
                                       {
                                            $ok=mysql_query("insert into vote values('','".$ip."','".$id_event."','".$id_vote."','".$_POST['rating']."')");
                                            $vote_ok="<br /><span style=color:#006600;>".$lang_vote_ok."</span>";
                                            }
                                       else
                                            {
                                            $no_vote="<br /><span style=color:#FF0000;>".$lang_vote_no."</span>";
                                            }
    }
     
            //averaging rating
            $qur1 = "select count(ID) as dd, avg(NOTE) as xx from vote where ID_EVENT='".$_GET['event']."' and ID_VOTE='".$id_vote."' group by ID_EVENT";
            $result1 = mysql_query($qur1);
            if($line = mysql_fetch_array($result1))
            {
                    $count = $line['dd'];
                    $rateval = $line['xx'];
            }
            else
                    $count = 0;
            ?>
    <p>
    	<?
            for($i=1;$i<=5;$i++)
            {
                if($rateval>=1)
                {
                       echo '<img name="i'.$i.'" style="cursor:pointer" onmouseover="selstar('.$i.')" onmouseout="remstar('.$i.')" onclick="setrate('.$i.')" src="webimages/etoiles/full.png" />';
                       $rateval=$rateval-1;
                }
                else if($rateval>=0.5)
                {
                        echo '<img name="i'.$i.'" style="cursor:pointer" onmouseover="selstar('.$i.')" onmouseout="remstar('.$i.')" onclick="setrate('.$i.')" src="webimages/etoiles/middle.png" />';
                        $rateval=$rateval-1;
                }
                else if ($rateval<0.5 && $rateval>0)
                {
                        echo '<img name="i'.$i.'" style="cursor:pointer" onmouseover="selstar('.$i.')" onmouseout="remstar('.$i.')" onclick="setrate('.$i.')" src="webimages/etoiles/empty.png" />';
                        $rateval=$rateval-1;
                }
                else if($rateval<=0)
                {
                        echo '<img name="i'.$i.'" style="cursor:pointer" onmouseover="selstar('.$i.')" onmouseout="remstar('.$i.')" onclick="setrate('.$i.')" src="webimages/etoiles/empty.png" />';
                }
            }	
        ?>
    </p>
     
    <p><?php  echo "[&nbsp;".$count." votes ]";  ?>
    <?php echo $vote_ok;  ?><?php echo $no_vote; ?></p>
    Merci d'avance pour votre aide et salutations à tous

Discussions similaires

  1. Ajouter un script de vote à une gallerie en jquery
    Par zvath773 dans le forum Débuter
    Réponses: 0
    Dernier message: 12/02/2012, 01h34
  2. Cherche un script de vote particulier
    Par zvath773 dans le forum Débuter
    Réponses: 1
    Dernier message: 09/02/2012, 10h57
  3. Script de vote en ligne
    Par BRUNO71 dans le forum Langage
    Réponses: 4
    Dernier message: 06/09/2011, 12h52
  4. Script de vote à étoiles
    Par rams33 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/02/2010, 21h52
  5. petit script pour vote automatiques
    Par intoxxx dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 16/11/2009, 13h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo