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

JavaScript Discussion :

Charger dynamiquement un tableau


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 74
    Points : 39
    Points
    39
    Par défaut Charger dynamiquement un tableau
    Bonjour à tous,

    j'ai une requête SQL qui comporte donc plusieurs titres de colonnes et lignes (le nombre de lignes dépendant de la requete SQL). Et je voudrai stocker dynamiquement ces informations dans un tableau HTML.

    J'ai chercher sur internet une méthode mais je n'ai pas trouvé. J'aimerai en fait une méthode qui utilise du HTML et du javascript (je ne sais pas coder en ASP ou en PHP).

    Merci de me donner la méthode à utiliser ou bien un tuto si vous en connaissez un

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Ta methode de recherche est à revoir ...

    http://www.developpez.net/forums/sho...d.php?t=475149

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 74
    Points : 39
    Points
    39
    Par défaut
    Ok merci.

    Et par contre ma variable qui contient la requête SQL je la met à la place de DestObj dans ton code?

    Et une petite dernière question.
    Mon tableau ayant un nombre de lignes dynamique, les autre lignes seront-elles vident si tout n'est pas rempli? Par ce que ce serai un problème.

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    suffit de boucler sur les tr et les td ...

    dasn ta requete, je suppose qu'un enregistrement est une ligne et une champs une cellule ...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 74
    Points : 39
    Points
    39
    Par défaut
    Je viens d'essayer et ce n'est pas dans les paramètres lors des appels de fonction que l'on défini le contenu du tableau.
    Pourrai-je avoir un exemple de comment charger mes données sous la forme d'une requête SQL dans le tableau?

    Merci

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    dasn ta boucle php sur les résutats de reQUETE/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function AddCells(DestLine,contenu){
    var newCell=document.createElement('td');
    newCell.style.border="solid 1px gray";
    newCell.appendChild(document.createTextNode(contenu));
    DestLine.appendChild(newCell);
    }
    Le contenu sera un champs de la requete

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 74
    Points : 39
    Points
    39
    Par défaut
    J'ai un petit problème avec ce script. Il marche très bien mais j'aimerais pouvoir choisir dans quelle colonne j'entre mes valeurs.

    Or à chaque fois que l'on revient dans la fonction AddLine, il recréer une ligne depuis la première colonne, même si je change les valeurs de la boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(l=0;l<NbrCells;l++)
    en commencant la boucle à l=1, la ligne qu'il créer commence toujours tt a gauche de la page.

    Résultat en appelant plusieurs fois la fonction comme 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
    {
    			new AddLine(BaliseTbody,nblignes,1,IdOT)
    			BaliseTable.appendChild(BaliseTbody);
    			DestObj.appendChild(BaliseTable);
    			document.close();
    			}
     
    			{
    			new AddLine(BaliseTbody,nblignes,2,NumOT)
    			BaliseTable.appendChild(BaliseTbody);
    			DestObj.appendChild(BaliseTable);
    			document.close();
    			}
     
    			{
    			new AddLine(BaliseTbody,nblignes,3,DateOT)
    			BaliseTable.appendChild(BaliseTbody);
    			DestObj.appendChild(BaliseTable);
    			document.close();
    			}
    Je me retrouve avec une seule colonne tout à gauche et non avec un tableau ...

    Comment puis-je faire svp?

  8. #8
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut

    tu te tortures les limbes du cerveau pour pas grand chose...
    voici un exemple ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat_requete=mysql_query("SELECT * FROM jeux_videos".$sqlstring) or die(mysql_error());
    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
    </head>
    <body>
    <table>
    	<tr>
    		<td class="headCol" >Nom <div onclick="tri('nom')" >&uarr;</div><div onclick="tri('nom',1)" >&darr;</div></td>
    		<td class="headCol" >Possesseur <div onclick="tri('possesseur')" >&uarr;</div><div onclick="tri('possesseur,1')" >&darr;</div></td>
    		<td class="headCol" >Console <div onclick="tri('console')" >&uarr;</div><div onclick="tri('nom',1)" >&darr;</div></td>
    		<td class="headCol">Prix <div onclick="tri('prix')" >&uarr;</div><div onclick="tri('prix,1')" >&darr;</div></td>
    		<td class="headCol" >Nombre Joueur Max <div onclick="tri('nbre_joueurs_max')" >&uarr;</div><div onclick="tri('nbre_joueurs_max',1)" >&darr;</div></td>
    		<td class="headCol" >Commentaires <div onclick="tri('commentaires')" >&uarr;</div><div onclick="tri('commentaires',1)" >&darr;</div></td>
    	</tr>	
     
     <?php
     while($entree = mysql_fetch_array($resultat_requete)) {
    ?>
     <tr>
    	<td><?php echo $entree['nom'];?></td>
    	<td><?php echo $entree['possesseur'];?></td>
    	<td><?php echo $entree['console'];?></td>
    	<td><?php echo number_format($entree['prix'],2,',','').'€';?></td>
    	<td><?php echo $entree['nbre_joueurs_max'];?></td>
    	<td><?php echo $entree['commentaires'];?></td>
      </tr>
      <?php
      }
    ?>
    </table>
     
    </body>
    </html>

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 74
    Points : 39
    Points
    39
    Par défaut
    Je sais que je suis désespérant mais ça ne marche toujours pas pour moi. En même temps je n'ai jamais fait de SQL donc je comprend pas trop le code.

    J'ai repris ton code à la différence que j'ai importer la requete SQL de la page mère, je l'ai stockée dans la variable Query et j'ai donc changé les valeurs des champs en bas. Voici le code de ma page:

    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html>
    <head>
     
    <script type='text/javascript'>
     
    function charger_donnees()
    {
    	//Récupération de la requête SQL de la page mère
    	self.opener.focus();
    	var mavar=opener.document.getElementById('variable');
    	Query= mavar.value;
     
    	$resultat_requete=mysql_query("'"+Query+"'".$sqlstring);
    }
    </script>
    </head>
     
    <body onload='charger_donnees();' style='background-color:white;'>
     
    <table>
    	<tr>
    		<td class="headCol" >ID <div onclick="tri('OT.ID_ORDRE_TRAVAUX')" >&uarr;</div><div onclick="tri('OT.ID_ORDRE_TRAVAUX',1)" >&darr;</div></td>
    		<td class="headCol" >N° <div onclick="tri('OT.OT_NUM')" >&uarr;</div><div onclick="tri('OT.OT_NUM,1')" >&darr;</div></td>
    		<td class="headCol" >Date <div onclick="tri('OT.OT_DATE_CREATION')" >&uarr;</div><div onclick="tri('OT.OT_DATE_CREATION',1)" >&darr;</div></td>
    		<td class="headCol">Code article <div onclick="tri('AR.ART_CODE')" >&uarr;</div><div onclick="tri('AR.ART_CODE,1')" >&darr;</div></td>
    		<td class="headCol" >Client <div onclick="tri('CL.CLI_NOM')" >&uarr;</div><div onclick="tri('CL.CLI_NOM',1)" >&darr;</div></td>
    		<td class="headCol" >Article <div onclick="tri('AR.ART_DESCRIPTION')" >&uarr;</div><div onclick="tri('AR.ART_DESCRIPTION',1)" >&darr;</div></td>
    		<td class="headCol" >Statut <div onclick="tri('ST.STA_LIBELLE')" >&uarr;</div><div onclick="tri('ST.STA_LIBELLE',1)" >&darr;</div></td>
    	</tr>	
     
     <?php
     while($entree = mysql_fetch_array($resultat_requete)) {
    ?>
     <tr>
    	<td><?php echo $entree['OT.ID_ORDRE_TRAVAUX'];?></td>
    	<td><?php echo $entree['OT.OT_NUM'];?></td>
    	<td><?php echo $entree['OT.OT_DATE_CREATION'];?></td>
    	<td><?php echo $entree['AR.ART_CODE'];?></td>
    	<td><?php echo $entree['CL.CLI_NOM'];?></td>
    	<td><?php echo $entree['AR.ART_DESCRIPTION'];?></td>
    	<td><?php echo $entree['ST.STA_LIBELLE'];?></td>
      </tr>
      <?php
      }
    ?>
    </table>
     
    </body>
     
    </html>
    Donc en gros ca m'affiche les titres des colonnes mais pas le contenu, je sais pas pourquoi :'(

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 74
    Points : 39
    Points
    39
    Par défaut
    J'ai finalement créé le tableau en javascript (trop dur pour moi le php :p )

    Sinon j'voulais savoir si dans ta méthode c'était possible d'ajouter lors de l'impression le menu sur chaque nouvelle page. C'est à dire que si le tableau prend quatre pages lors de l'impression, le titre des colonnes se recopie sur chaque feuille.

    Je pense qu'il faut faire appel à une balise genre Thead mais j'sais pas comment l'utiliser dans le script.

Discussions similaires

  1. probleme pour charger dynamiquement un tableau
    Par Bobette dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 12/04/2012, 12h53
  2. Charger dynamiquement un tableau
    Par chrosnir dans le forum Débuter
    Réponses: 2
    Dernier message: 16/06/2008, 13h43
  3. Réponses: 6
    Dernier message: 26/11/2005, 19h55
  4. Création dynamique de tableau.
    Par Yux dans le forum C
    Réponses: 6
    Dernier message: 05/11/2005, 16h24
  5. charger dynamiquement un jar
    Par bpy1401 dans le forum Général Java
    Réponses: 2
    Dernier message: 19/09/2005, 10h37

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