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 :

Datatables depuis source json [Plugin]


Sujet :

jQuery

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 94
    Par défaut Datatables depuis source json
    Bonjour,

    Je vous écrit au sujet du plug-in Datatables, mon problème est le suivant :

    Je cherche à populer ma table depuis une page php qui effectue une requête en BDD, et qui retourne au bon format (JSON) les données.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var oTable = $('#demotable1').dataTable({
                    "sAjaxSource": "../data/data.php"
    });
    Seulement voilà, j'ai cru comprendre que le format de donnée retourné doit respecté une certaine norme (cf:http://datatables.net/usage/server-side).


    Je voudrais donc savoir, comment pourais-je "formater" mes données pour qu'elle ressemble à ceci :

    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
     
    {
        "sEcho": 3,
        "iTotalRecords": 57,
        "iTotalDisplayRecords": 57,
        "aaData": [
            {
                "DT_RowId": "row_7",
                "DT_RowClass": "gradeA",
                "0": "Gecko",
                "1": "Firefox 1.0",
                "2": "Win 98+ / OSX.2+",
                "3": "1.7",
                "4": "A"
            },
            {
                "DT_RowId": "row_8",
                "DT_RowClass": "gradeA",
                "0": "Gecko",
                "1": "Firefox 1.5",
                "2": "Win 98+ / OSX.2+",
                "3": "1.8",
                "4": "A"
            },
            ...
        ]
    }
    ?

    Merci d'avance

  2. #2
    Membre chevronné
    Avatar de Darkaurora
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Billets dans le blog
    1
    Par défaut
    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
     
    //Déclaration de ta requête
    MyQuery = 'SELECT col1 AS DT_RowId, col2 AS DT_RowClass, col3 AS 0... FROM MyTable';
     
    if( $result = mysql_query( MyQuery ) ) {
     
    	/*-- Déclaration des variables d'execution --*/
    	$JsonObj = array( 
    	    "sEcho" => 3,
    	    "iTotalRecords" => 57,
    	    "iTotalDisplayRecords" => 57,
    	    "aaData" => array( )
    	)
     
    	if( mysql_num_rows( $result ) != 0 ) {
    		while( $ligne = mysql_fetch_assoc( $result ) )
    			array_push( $JsonObj['aaData'], $ligne );
     
    	} else { } // Erreur
     
            echo json_encode( $JsonObj );
     
    	/*--Libération des ressources--*/
    	mysql_free_result( $result ); unset( $ligne ); unset( $JsonObj );
     
    } else { } // Erreur

  3. #3
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    json_encode suffit, sauf qu'il ne faut rien envoyer d'autre..; pas d'espace avant ni après ni de retour ligne, ni de BOM

    vérifie dans le console de firebug ce que tu reçois en retour ...
    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 !

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 94
    Par défaut
    Merci pour vos réponse, j'y suis arrivé ! Voici mon code final :

    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
    public function getResdata($table_name) {
            $select = 'SELECT * FROM "toolRess"."T_' . $table_name . '" ';
            $conn = $this->connect();
            $req = pg_query($select);
            $result = "";
            $i = 0;
            $json = array(
                "sEcho" => 3,
                "aaData" => array(),
            );
     
            while ($row = pg_fetch_row($req)) {
                array_push($json['aaData'], (object)$row);
                $i = $i + 1;
            }
            $row = pg_fetch_row($req);
            $this->closeConn($conn);
            return json_encode($json);
        }

    Mon seul souci maintenant, est que j'aimerais pour chaque ligne, y ajouter : "DT_RowId" : "Row7"...

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

Discussions similaires

  1. Problème JTable supression depuis source de données
    Par Catheral29 dans le forum Composants
    Réponses: 3
    Dernier message: 27/09/2012, 21h17
  2. [MySQL] Validation Pseudo Source JSON ?
    Par fazpedro dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/04/2012, 14h27
  3. Réponses: 10
    Dernier message: 13/09/2011, 10h08
  4. Réponses: 4
    Dernier message: 03/02/2009, 11h29
  5. problème d'affichage RSS 2.0 depuis source html
    Par mims1664 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 09/09/2008, 11h03

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