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

jQuery Discussion :

Jquery min values depuis table html


Sujet :

jQuery

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien HelpDesk & développeur php
    Inscrit en
    mai 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien HelpDesk & développeur php

    Informations forums :
    Inscription : mai 2009
    Messages : 36
    Points : 94
    Points
    94
    Par défaut Jquery min values depuis table html
    Salut à tous, pour un projet, j'ai une table html générée avec du php depuis curl

    J'ai besoin d'en extraire quelques statistiques comme : la valeur minimale, maximale ainsi que la moyenne d'une colonne spécifique. Toutes les colonnes ont un td id. Je pensais que le plus pratique serais jquery

    Voici la table:

    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
    table id='table'
     
    //title line
    echo ("<tr id='title'><td id ='orderNo'>orderNo</td><td id ='orderDate'>orderDate</td><td id ='yourReference'>yourReference</td><td id ='Reference'>Reference</td><td id ='projectName'>projectName</td><td id ='statusId'>statusId</td><td id ='statusText'>statusText</td><td id ='shippedOn'>shippedOn</td><td id ='deliveredOn'>deliveredOn</td><td id ='signedBy'>(POD) signedBy</td><td id ='days'>Number of days</td><td id ='packages'>Number of packages</td><td id ='netWeight'>netWeight</td></tr>");
     
    //content line (in a foreach loop)
    echo ("<tr><td>".$order."</td><td>".$orderDate."</td><td>".$references."</td><td>".$yourReference."</td><td>".$projectName."</td><td>".$statusId."</td><td>".$statusText."</td><td>".$shippedOn."</td><td>".$deliveredOn."</td><td>".$signedBy."</td><td>".$diffDate."</td><td>".$quantity."</td><td>".$netWeight." Kg</td></tr>"); 
     
    Les valeures dans la colonne "days" sont obtenues par la soustraction de "shippedOn et deliveredOn"; soit :
     
    if(isset($result['results'][$i]["shippedOn"])){
                            $shippedOn = $result['results'][$i]["shippedOn"];
                        }else{
                            $shippedOn = "0";
                        }
                        if(isset($result['results'][$i]["deliveredOn"])){
                            $deliveredOn = $result['results'][$i]["deliveredOn"];
                        }else{
                            $deliveredOn = "0";
                        }
     
                        //Calcul de la différence entre $shippedOn et $deliveredOn
                        $debut = strtotime($shippedOn);
                        $fin = strtotime($deliveredOn);
                        $diffDate = ceil(abs($fin - $debut) / 86400);

    Les données dont j'ai besoins, sont : minimum, maximum et moyenne pour la colonne "Number of days"

    Comme puis-je le faire ?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    juin 2003
    Messages
    9 243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 9 243
    Points : 14 162
    Points
    14 162
    Par défaut
    le javascript standard utilisable dans tous les navigateurs a beaucoup évolué ces dernières années donc je pense que vous n'avez pas besoin d'utiliser jquery pour cela, le code javascript de base suffira.

    de plus, vous nous montrez du code php, donc vous pouvez peut-être faire ce calcul en php ?
    regardez là : https://www.php.net/manual/fr/function.min.php

  3. #3
    Membre régulier
    Homme Profil pro
    Technicien HelpDesk & développeur php
    Inscrit en
    mai 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien HelpDesk & développeur php

    Informations forums :
    Inscription : mai 2009
    Messages : 36
    Points : 94
    Points
    94
    Par défaut
    Merci Mathieu,

    J'ai suivi un tuto qui fait exactement ce dont j'ai besoin (https://1bestcsharp.blogspot.com/201...n-sum-avg.html), mais...

    Voici le résultat en image
    Nom : Capture3.PNG
Affichages : 21
Taille : 409,3 Ko

    Dans la colonne "number of days", il prend bien le minimal "0" mais il semble y avoir un problème avec le maximal "5" alors que ça devrait être "18645"; ce qui fait que le résumé donne ceci :
    Minimum Value = 0
    Maximum Value = 5
    Sum Value = NaN
    Average Value = NaN

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    mars 2002
    Messages
    39 227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2002
    Messages : 39 227
    Points : 65 799
    Points
    65 799
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       maxVal = 1* table.rows[i].cells[2].innerHTML;
    sinon il te fait un classement alphabétique .. et donc "5" > "1852"

    Autrement dit partout ou dans le script tu récupère une valeur numérique avec innerHTML il faut la convertir en numérique car par défaut ce sera du string ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr|www.saftair.fr| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
    Humour

  5. #5
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2012
    Messages
    2 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2012
    Messages : 2 094
    Points : 4 049
    Points
    4 049
    Par défaut
    Bonjour,

    Pour la valeur maximale, vous devriez utiliser parseInt() pour convertir la valeur en nombre puis ensuite la comparer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if (maxVal<parseInt(table.rows[i].cells[2].innerHTML))

Discussions similaires

  1. [Python 2.X] extraire des informations depuis une table html
    Par overider dans le forum Général Python
    Réponses: 0
    Dernier message: 03/07/2014, 14h03
  2. [RegEx] Attraper données depuis source html (table)
    Par flozza dans le forum Langage
    Réponses: 2
    Dernier message: 05/01/2013, 13h04
  3. JQuery min fait planter les liens html?
    Par dragonxav72 dans le forum jQuery
    Réponses: 2
    Dernier message: 15/04/2012, 16h56
  4. Mise à jour d'une une table sql depuis table importée
    Par Yohann_x dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 09/03/2006, 11h43
  5. [VB.Net] Affichage de données dans table HTML
    Par Off$ide dans le forum ASP.NET
    Réponses: 7
    Dernier message: 04/11/2005, 13h58

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