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 :

Datatable avec ligne supplémentaire suivant les requêtes


Sujet :

jQuery

  1. #1
    Membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Mars 2019
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 134
    Points : 59
    Points
    59
    Par défaut Datatable avec ligne supplémentaire suivant les requêtes
    Bonjour à vous,
    je gère un site sous wordpress et, grâce aux précieux conseils délivrés sur ce forum, j'ai pu mettre des tableaux SQL sur mon site qui se mettent en forme grâce à la librairie js datatable.
    Tout fonctionne très bien pour un de mes tableaux, mais un autre sort les résultats qu'il devrait, mais aussi une dernière ligne vide indiquant "No data available in table" et le décompte d'éléments ne se fait pas.
    J'avoue ne pas comprendre car les deux tableaux ont des requêtes SQL très proches, les mêmes types de connexions à ma base, les mêmes types de données et ils vont chercher le même fichier js qui s'exécute dans le footer.
    Je ne vois pas d'où venir le problème et je ne sais même pas quel code vous mettre car normalement tout devrait fonctionner.
    Est-ce que quelqu'un saurait d'où ça peut venir ?
    Pour info tout de même la requête et le tableau ont cette forme :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    //requêtes SQL
     
    $sql2="SELECT * from bibliographie LEFT JOIN auteur ON bibliographie.ID_Auteur=auteur.ID_Auteur ORDER BY Annee DESC ";	
    	//connexion au serveur
     
    $connexion=include 'dunum_connexion_db.php';
     
     
    //Tableau de bibliographie générale
    	?>
    <style>
    th{
    	text-align: center;
    }
    td{
    	border: 1px solid lightgrey;
    	padding: 5px !important;
    	vertical-align: middle;
    }
    </style>
    <table id="Tableau" class="table table-striped table-bordered" width="90%">
    		<thead>
    			<tr>
    				<th width=10%> Auteur </th>
    				<th width=10%> Année </th>
    				<th width= 55%> Références bibliographiques </th>
    				<th width=10%> Type </th>
    				<th width=5%> Lien </th>
    				<th width= 10%> </th>
    			</tr>
    		<thead>
     
    <?php 
    $sql2 = $connexion->prepare($sql2);
    	$sql2->execute();
    while ($row = $sql2->fetch())
    {
    $lien = (!empty($row['Lien']))? '<a href='.$row['Lien'].'><img src=xx/lien.png alt=lien width=30% /></a>' : '';
    $fiche_auteur = (!empty($row['Fiche']))? '<a href='.$chemin_image.'collaborateur/'.$row['Nom'].'-'.$row['Prenom'].'>'.$row['Nom_Auteur'].'</a>' : ''.$row['Nom_Auteur'].'';
    echo "<tr>
    		<td>".$fiche_auteur."</td>
    		<td>".$row['Annee']."</td>
    		<td><div class=cesure>".$row['Reference']."</div></td>
    		<td>".$row['Type']."</td>
    		<td Style='text-align:center !important'>".$lien."</td>
    		<td><a href='modifier_biblio?id=".$row['ID']."&o=u'>Modifier</a><br><a href='supprimer_biblio?id=".$row['ID']."&o=d'>Supprimer</a></td>
    	</tr>\n";
    }
    ?>
    </table>
    la connexion se fait par :
    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
    <?php
    //fichier de connexion à la base de données - 29/10/2019
    // on vérifie si la fonction de connexion a déjà été définie afin d'éviter de la redéfinir
    if ( ! function_exists('db_connexion')) {
       function db_connexion() {
          // une fois ouverte, on renvoie toujours la même connexion
          static $pdo;
          // on vérifie si la connexion n'a pas déjà été initialisée
          if ( ! ($pdo instanceof PDO)) {
             // tentative d'ouverture de la connexion MySQL
    	$serveur = "localhost";
    	$dbname = "xx_local";
    	$login = "root";
    	$pass = "";
             try {
            $pdo = new PDO("mysql:host=$serveur;dbname=$dbname", $login,$pass,array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
    		$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
     
    		}
    	catch(PDOException $e){
    		echo 'Echec : ' .$e->getMessage();
    	}
          }
          // renvoi de la ressource : connexion à la base de données
          return $pdo;
       }
    }
    return db_connexion();
    et le fichier jquery est de cette forme :
    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
    jQuery(document).ready(function($){
      $('#Tableau').DataTable({
        language: {
          lengthMenu: "Afficher_MENU_ éléments",
          info: "Affichage de l'élément _START_ à _END_ sur _TOTAL_ éléments",
          search: "Rechercher :",
          paginate: {
            first:      "Premier",
            last:       "Dernier",
            next:       "Suivant",
            previous:   "Précédent"
          }
        }
      });
    });
    merci d'avance aux courageux !

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

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 847
    Points
    4 847
    Par défaut
    Citation Envoyé par Clement_archeo Voir le message
    Tout fonctionne très bien pour un de mes tableaux, mais un autre sort les résultats qu'il devrait,
    Tu peux préciser encore plus? tu veux dire quoi par "un autre sort les résultats qu'il devrait" ?

  3. #3
    Membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Mars 2019
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    je veux juste dire que sur le tableau dont j'ai fourni le code, la requête SQL marche très bien et j'ai tout les résultats affichés normalement...mais avec un problème de pagination et ne dernière ligne "No data available in table"
    Nom : tableau.jpg
Affichages : 108
Taille : 185,9 Ko
    En fait, les tris des colonnes ne marchent pas non plus, ainsi que le champs de recherche. ça donne l'impression que la mise en forme datatable n'est pas aboutie...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par Clement_archeo Voir le message
    j...les tris des colonnes ne marchent pas non plus, ainsi que le champs de recherche...
    Ça veut certainement dire qu'il y a une erreur JavaScript qui plante le code.
    [EDIT] Après avoir vu le code (cf message suivant) il semble que ce soit le HTML du tableau qui soit mal-formé.

    1- As-tu regardé dans la console ?

    2- montre la page en ligne.
    Dernière modification par Invité ; 30/10/2019 à 09h49.

  5. #5
    Membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Mars 2019
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    j'ai bien regardé la console jreaux62...mais en vain et je ne comprends pas car l'autre tableau que tu m'a aidé à mettre en place fonctionne très bien...lui !
    m'enfin le lien est : supprimé

  6. #6
    Invité
    Invité(e)
    Par défaut
    A- Après avoir vu le code, il semble que ce soit le HTML du tableau qui soit mal-formé :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <table id="Tableau" Style="table table-striped table-bordered" width="90%;">
    		<thead>
    			<tr>
    				<th width=10%> Auteur </th>
    ...
    			</tr>
    		<thead>
     
    <tr>...
    1- ce n'est pas Style="table ...", mais class="table ..." !
    2- le <thead> se ferme avec </thead>.
    3- le 2ème <thead> fait que la ligne suivante est AUSSI considérée comme une ligne d'entête *
    4- il manque le <tbody>

    * C'est sûrement ce qui génère l'erreur.

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <table id="Tableau" class="table table-striped table-bordered" width="90%;">
    		<thead>
    			<tr>
    				<th width=10%> Auteur </th>
    ...
    			</tr>
    		</thead>
    		<tbody>
    <tr>
    ...
     
    		</tbody>
    </table>

    B- Ensuite, si tu veux gérer plusieurs tableaux dans la même page, remplace :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <table id="Tableau" class="table ...."
    par
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <table class="table Tableau ...."
    et pour le script JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //datatable
    jQuery(document).ready(function($){
      $('.Tableau').DataTable({
    ...
    Dernière modification par ProgElecT ; 30/10/2019 à 11h27.

  7. #7
    Membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Mars 2019
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    effectivement jreaux62...c'est bien le </thead> manquant qui faisait planter. Merci beaucoup, il fallait le trouver !
    Bonne journée

  8. #8
    Invité
    Invité(e)
    Par défaut
    Tu as le droit de mettre un au(x) message(s) qui t'a(ont) aidé !

    D'autant que, comme tu le dit, il fallait le trouver* !!
    *Moi aussi, je fais des fouilles !

  9. #9
    Membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Mars 2019
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    ok, ça roule...avec plaisir alors...et je te demanderai ton aide sur mon prochain chantier, tu as l'air performant !

  10. #10
    Invité
    Invité(e)
    Par défaut
    Pourquoi pas ?
    Ça peut effectivement m'intéresser !

    Quoi que... dans le Nord-Pas-de-Calais, on retrouve surtout des bombes des 2 Grandes Guerres... (sans même fouiller très profond...)
    Dernière modification par Invité ; 30/10/2019 à 10h40.

  11. #11
    Membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Mars 2019
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2019
    Messages : 134
    Points : 59
    Points
    59
    Par défaut
    je ne suis pas allé fouiller si haut en France, mais la dernière fois, y avait quelque trucs intéressants dans l'Aisne...effectivement au milieu des restes d'obus...

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 20/09/2010, 21h10
  2. Réponses: 5
    Dernier message: 16/08/2005, 12h15
  3. Action différente suivant les droits
    Par JMLD dans le forum XMLRAD
    Réponses: 2
    Dernier message: 27/04/2005, 17h25
  4. Réponses: 44
    Dernier message: 14/03/2005, 09h43
  5. Optimisations mysql sur les requêtes SELECT: index
    Par leo'z dans le forum Débuter
    Réponses: 2
    Dernier message: 29/11/2003, 13h23

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