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 :

Récupérer le nombre de lignes totales d'une datatable


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 42
    Par défaut Récupérer le nombre de lignes totales d'une datatable
    Bonjour,

    Dans le cadre d'un projet, je cherche à savoir le nombre de nouvel élément ajouter dans une datatable qui est rechargée toute les 10 minutes. Pour cela, je compte calculer le nombre de lignes avant la modification et le nombre après pour faire la différence et l'afficher. Seul bémol, je n'arrive pas accéder au nombre de lignes constituant ma datatable que ça soit par la méthode fnGetData (qui me retourne tableau vide) ou par les attributs de fnSettings.

    Voici le script permettant la création de ma datatable :

    Code jquery : 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
    oTableInfo = $('#tabInfoDiverse').dataTable({
            "retrieve": true,
            "jQueryUI" : true,
            "iDisplayLength" : 6,
            "bLengthChange": false,
            "bInfo" : false,
            "searching" : false,
            "autoWidth": false,
            "sPaginationType" : "simple",
            "sDom" : 'tp', 
            "aaSorting" : [
                [0,"desc"]
            ],
            "aoColumnDefs" : [
                {
                    "sTitle" : "Date",
                    "data" : "Date",
                    "sWidth" : "15%",
                    "aTargets" : [0]
                },
                {
                    "sTitle" : "Informations",
                    "data" : "Information",
                    "sWidth" : "85%",
                    "aTargets" : [1],
                    "bSortable" : false
                }
            ],
            "oLanguage": {
                "oPaginate" : {
                    "sPrevious": "Préc",
                    "sNext":     "Suiv"
                },
                "sEmptyTable": "Aucune information"
            },        
            "sAjaxSource" : "compte/getInformation"
        });


    Ma datatable est donc alimenté par une requête AJAX qui correspond à du JSON.
    Voici ma fonction de test qui permet l'alimentation :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     /**
      * Fonction qui permet d'alimenter le bloc information
      */
      public function getInformation(){
        for($i =0; $i< 13;$i++){
           $data["data"][$i] = array("Date"=>"01/10/2014","Information"=>"Information ".$i);
        }
        echo json_encode($data);     
      }

    Auriez-vous une idée ?

    Merci !

  2. #2
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    A priori la réponse se trouve sur le forum de DataTable
    http://datatables.net/forums/discuss...number-of-rows
    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 !

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 42
    Par défaut
    oTableInfo.fnGetData().length , oTableInfo.fnSettings().fnRecordsTotal() et oTableInfo.fnSettings().fnRecordsDisplay() me retourne tous les trois des résultats nuls.
    Comme si je n'avais aucune donnée dans ma datatable. Ce ne serait pas du au fait que ma datatable est alimenté par requête AJAX et donc contient aucun résultat avant l'appel à cette requête ?

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    fais tu appel a ces methodes dans le callback de l'ajax ?
    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 !

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 42
    Par défaut
    Je ne faisait pas appel dans la fonction fnDrawCallBack effectivement. Je récupère bien un nombre de données affichées dans ma datatable mais celui ne correspond qu'a ma première page.
    Ayant mis :
    Code Jquery : Sélectionner tout - Visualiser dans une fenêtre à part
    "iDisplayLength" : 6
    Je n'affiche que des pages de 6 lignes. Hors dans mon exemple donné plus haut, j'ai un total de lignes étant égal à 13. (3 pages)

    La fonction fnDrawCallBack ne suffit donc pas :/

  6. #6
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    issu de la doc Datatable

    iTotalRecords is the number of records regardless of filtering (in this case from what you say 60)
    iTotalDisplayRecords is the number of records when filtering is taken into account (you say 15 here, so filtering must be applied).
    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 !

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 42
    Par défaut
    Autant pour moi je m'y suis mal pris avec la fonction fnDrawCallback. En l'utilisant de cette manière je stock bien le nombre de lignes dans ma variable qui change lorsque j'ajoute de nouvelles valeurs :

    Code Jquery : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    "fnDrawCallback" : function(settings) {
         totalLines = settings.aoData.length;
    }

    Merci bien,
    Bonne journée à toi !

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

Discussions similaires

  1. récupérer le nombre de lignes d'une table interne.
    Par progamer54 dans le forum SAP
    Réponses: 6
    Dernier message: 26/08/2008, 17h06
  2. Réponses: 3
    Dernier message: 24/04/2008, 21h56
  3. Réponses: 3
    Dernier message: 24/04/2008, 17h20
  4. Réponses: 2
    Dernier message: 20/03/2007, 13h39
  5. Réponses: 3
    Dernier message: 27/09/2006, 11h35

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