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 :

datable et tableau php [Plugin]


Sujet :

jQuery

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Par défaut datable et tableau php
    Bonjour,

    Je débute (fortement en JS) et je cherche à afficher le contenu d'une requête SQL dans un datatable.
    L'affichage est correct, j'ai bien le champs de recherche et le menu déroulant cependant ces deux derniers ne fonctionnent pas. La recherche n'est pas prise en compte (quelque soit la chaîne de caractère recherchée, elle n'est pas trouvée) et tout mon tableau est affiché (quelque soit le nombre d'entrée à afficher choisi dans le menu déroulant).
    Je suppose que le problème vient du fait que mon tableau est généré en php (j'ai essayé avec l'exemple fourni sur https://www.datatables.net/examples/...ro_config.html qui fonctionne parfaitement).

    D'avance merci.

    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
    <html>
    <title>Emission</title>
    <script type="text/javascript" language="javascript" src="/jquery.js"></script>
    <script type="text/javascript" language="javascript" src="/jquery.dataTables.js"></script>
    <script type="text/javascript" charset="utf-8">	
    $(document).ready(function() {
    $('#tableau_emission').dataTable();
    } );</script>
    <body>
    <?php  
    // information pour la connection à le DB
    $host = 'localhost';
    $user = 'user';
    $pass = 'mdp';
    $db = 'ma_db';
     
    // connection à la DB
     
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
    // requête SQL qui récupère toutes les émissions de la table url_emission
    $select = 'SELECT * FROM t_url_emissions';
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
     
    // si résultat, on l'affiche.
    if($total) {
        // debut du tableau
            echo '<table cellpadding="0" cellspacing="0" border="0" class="display"  bgcolor="#FFFFFF" id="tableau_emission">'."\n";
            // première ligne : intitulé de colonnes
            echo '<thead>';
                            echo '<tr>';
                                    echo '<th bgcolor="#669999"><b><u>Chaine</u></b></th>';
                                    echo '<th bgcolor="#669999"><b><u>Titre Emission</u></b></th>';
                                    echo '<th bgcolor="#669999"><b><u>elm_pg_numero</u></b></th>';
                                    echo '<th bgcolor="#669999"><b><u>url_emission</u></b></th>';
                            echo '</tr>'."\n";
                    echo '</thead>';
     
        // lecture et affichage des résultats sur 3 colonnes: 1 résultat par ligne.    
     
        while($row = mysql_fetch_array($result)) {
            echo '<tbody>';
                    echo '<tr>';
            echo '<td bgcolor="#CCCCCC">'.$row["chaine"].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row["titre_emission"].'</td>';
                    echo '<td bgcolor="#CCCCCC">'.$row["elm_pg_numero"].'</td>';
                    echo '<td bgcolor="#CCCCCC">'.$row["url_emission"].'</td>';
          echo '</tr>'."\n";
              echo '</tbody>';
        }
        echo '</table>'."\n";
       // fin du tableau.
    }
     
    else echo 'Pas d\'enregistrements dans cette table...';
     
    // libèration du résultat
    mysql_free_result($result);
     
    ?>
    </body>
     
    </html>
    EDIT: En fait, le problème doit vraiment venir de ma gestion avec php car le plugin considère qu'il n'y a qu'une entrée dans le tableau quelque soit le nombre d'entrée réelles.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    regardez le code HTML généré, vous verrez qu'il y a trop de balises "tbody"

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Par défaut
    Ok, effectivement, j'ai vu l'erreur. Il faut sortir les balises <tbody> du while.

    Le code corrigé:

    Code html : 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
    <html>
    <title>Emission</title>
    <script type="text/javascript" language="javascript" src="/jquery.js"></script>
    <script type="text/javascript" language="javascript" src="/jquery.dataTables.js"></script>
    <script type="text/javascript" charset="utf-8"> 
    $(document).ready(function() {
    $('#tableau_emission').dataTable();
    } );</script>
    <body>
    <?php  
    // information pour la connection à le DB
    $host = 'localhost';
    $user = 'user';
    $pass = 'mdp';
    $db = 'ma_db';
     
    // connection à la DB
     
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
    // requête SQL qui récupère toutes les émissions de la table url_emission
    $select = 'SELECT * FROM t_url_emissions';
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
     
    // si résultat, on l'affiche.
    if($total) {
        // debut du tableau
            echo '<table cellpadding="0" cellspacing="0" border="0" class="display"  bgcolor="#FFFFFF" id="tableau_emission">'."\n";
            // première ligne : intitulé de colonnes
            echo '<thead>';
                            echo '<tr>';
                                    echo '<th bgcolor="#669999"><b><u>Chaine</u></b></th>';
                                    echo '<th bgcolor="#669999"><b><u>Titre Emission</u></b></th>';
                                    echo '<th bgcolor="#669999"><b><u>elm_pg_numero</u></b></th>';
                                    echo '<th bgcolor="#669999"><b><u>url_emission</u></b></th>';
                            echo '</tr>'."\n";
                    echo '</thead>';
     
        // lecture et affichage des résultats sur 3 colonnes: 1 résultat par ligne.    
        echo '<tbody>';
        while($row = mysql_fetch_array($result)) {
            
                    echo '<tr>';
            echo '<td bgcolor="#CCCCCC">'.$row["chaine"].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row["titre_emission"].'</td>';
                    echo '<td bgcolor="#CCCCCC">'.$row["elm_pg_numero"].'</td>';
                    echo '<td bgcolor="#CCCCCC">'.$row["url_emission"].'</td>';
          echo '</tr>'."\n";
              
        }
        echo '</tbody>';
        echo '</table>'."\n";
       // fin du tableau.
    }
     
    else echo 'Pas d\'enregistrements dans cette table...';
     
    // libèration du résultat
    mysql_free_result($result);
     
    ?>
    </body>
     
    </html>

    Encore merci.

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

Discussions similaires

  1. [Tableaux] afficher le contenu d'un tableau php
    Par moons dans le forum Langage
    Réponses: 9
    Dernier message: 08/02/2006, 15h12
  2. [PHP-JS] Passer un tableau php en tableau JS
    Par dark_vidor dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/12/2005, 11h36
  3. Recuperer un tableau php dans javascript
    Par 17mounir dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/08/2005, 09h07
  4. [DOM XML] XML -> tableau PHP
    Par Mucsy dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 03/06/2005, 11h44
  5. [PHP-JS] Remplir un tableau javascript selon un tableau php
    Par jerome38000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/01/2005, 14h02

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