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 :

Passer variable php dans javascript : Récupérer en js valeur du compteur nombre de lectures


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur web amateur
    Inscrit en
    Août 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur web amateur
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2012
    Messages : 84
    Par défaut Passer variable php dans javascript : Récupérer en js valeur du compteur nombre de lectures
    Bonjour,
    Dans ma liste de news, j'éssaie de mettre des indicateurs de nombre de vues(lectures), de commentaires et de partages.
    En m'inspirant du http://www.lefigaro.fr , je voudrais que le nombre et l'icône de lectures passent en rouge dès qu'ils dépassent disons 50 vues.
    Dans ma table "news" , il y a un champ libéllé "lectures" qui correspond au nombre de vues pour chaque news.
    Il est de type int(6) et prend des valeurs de 1 à 100.

    Mais au vu de mes codes , le nombre de lecture et l'icône restent invariablement rouges .
    Code php : 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
    <div id="counters_<?php echo $donnee['id'];?>" class="counters" >
        <div class="icon-views" alt="nombre de lectures" title="Lectures"><i class="fa fa-eye"></i></div>
        <div class="count-views" alt="nombre de lectures" title="Lectures">
            <?php
                $id=$donnee['id'];
                $retour_count = mysql_query( "SELECT COUNT(*) AS nbre_vues FROM news WHERE id='" . $id ."' ");
                $donnees_count = mysql_fetch_assoc($retour_count);
                if ($donnees_count['nbre_vues'] == 0){
                    mysql_query("INSERT INTO news(lectures) VALUES 1");
                    echo "1";
     
                } else {
                    $retour = mysql_query("SELECT lectures FROM news WHERE id='" . $id ."' ");
                    $donnees = mysql_fetch_assoc($retour);
                    $lectures = $donnees['lectures'] + 1;
                    mysql_query("UPDATE news SET lectures = lectures + 1 WHERE id='" . $id ."' ");
                    echo $lectures;
                }
            ?>
        </div>
    </div>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script>
        var highlighted=<?php echo $lectures ?>,
            kounter = document.getElementsByClassName("count-views"),
            ikon = document.getElementsByClassName("icon-views");
     
        if(highlighted > 50){
            $(kounter).css("color","#f00"); 
            $(ikon).css("color","#f00");
        }else {
            $(kounter).css("color","#999");
            $(ikon).css("color","#999");
        }
    </script>
    En faisant un echo gettype($lectures) j'ai bien 'integer'.
    Personnellement, je pense que la var highlighted n'est pas de type numeric (ou integer) pour être comparée avec $lectures.
    Quelqu'un aimerait-il me montrer où ça cloche ?
    Merci d'avance.

  2. #2
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Bonjour,

    Et tout jQuery, cela ne fonctionne pas ?
    Code jQuery : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $(document).ready(function () {
        $('.counters').each(function () {
            var $counters = $(this);
            if (parseInt($counters.find('.count-views').text(), 10) > 50) {
                $counters.find('div').css("color", "#f00");
            } else {
                $counters.find('div').css("color", "#999");
            }
        });
    });

    micetf

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 210
    Par défaut
    Bonjour,
    je ne comprend pas pourquoi tu ne traites pas cela à la source, coté serveur en ajoutant une classe par exemple, plutôt que de rajouter une couche coté client !?!

  4. #4
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 119
    Billets dans le blog
    1
    Par défaut
    tu peux resoudre ca dans ton PHP directment

    Code php : 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
    <div id="counters_<?php echo $donnee['id'];?>" class="counters" >
     
            <?php
                $id=$donnee['id'];
                $kounter="#999";
     
                $lectures=1;
                $retour_count = mysql_query( "SELECT COUNT(*) AS nbre_vues FROM news WHERE id='" . $id ."' ");
                $donnees_count = mysql_fetch_assoc($retour_count);
                if ($donnees_count['nbre_vues'] == 0){
                    mysql_query("INSERT INTO news(lectures) VALUES 1");
     
     
                } else {
                    $retour = mysql_query("SELECT lectures FROM news WHERE id='" . $id ."' ");
                    $donnees = mysql_fetch_assoc($retour);
                    $lectures = $donnees['lectures'] + 1;
                    mysql_query("UPDATE news SET lectures = lectures + 1 WHERE id='" . $id ."' ");
     
                }
                if($lectures > 50){
                      $kounter="#f00"); 
     
               } 
            ?>
         <div class="icon-views" alt="nombre de lectures" title="Lectures" style="color<?php  echo $kounter; ?>"><i class="fa fa-eye"></i></div>
        <div class="count-views" alt="nombre de lectures" title="Lectures" style="color<?php  echo $kounter; ?>">
       <?php echo $lectures ?>
        </div>
    </div>

    Sinon si tu tiens et que tu doute que c est le fait que ta variable lecture n est pas passee comme entier tu peux la caster
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <script>
        var highlighted=<?php echo $lectures ?>/1||1,
            ......
    </script>

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur web amateur
    Inscrit en
    Août 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur web amateur
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2012
    Messages : 84
    Par défaut
    C'est vrai que traiter ça coté serveur est plus adéquat.
    Ça marche pour moi aussi bien en php qu'en js. Merci les gars.

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 210
    Par défaut
    Citation Envoyé par Lakhdr
    style="color<?php echo $kounter; ?>"
    passer par une class sur le conteneur principal me parait plus propre mais enfin le principal est que cela fonctionne !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer variable php dans Javascript
    Par Amnael dans le forum Général JavaScript
    Réponses: 32
    Dernier message: 29/01/2016, 00h57
  2. Passer une variable PHP dans JavaScript
    Par freud dans le forum Langage
    Réponses: 16
    Dernier message: 03/05/2011, 18h51
  3. [PHP-JS] Variables PHP dans JavaScript
    Par m3n2o dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/01/2007, 13h09
  4. [PHP-JS] Soucis variable php dans javascript.
    Par cisse18 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/07/2006, 10h47

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