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

PHP & Base de données Discussion :

affichage d'un tableau dans un boucle


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Par défaut affichage d'un tableau dans un boucle
    Bonjour
    je suis sur PHP+AJAX

    voila ce que je fais j'affiche un tableau quand je clique sur un lien.
    J'explique un peu :
    quand on clique sur le lien "Détails", ajax va faire le traitement et va afficher tableau.php
    entre <div id='centre'></div>.
    Mon problème c'est que si la requete retourne 10 noms depuis la base
    et quand je clique sur le lien "Détails" du 5eme nom par exemple le tableau (tableau.php) s'affiche toujours en bas du premier nom

    Si vous avez des idéés 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
    <script language="JavaScript">
    {
     var xhr_object = null;
     var position = id;
     if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
     else
     if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
     
     // On ouvre la requete vers la page désirée
     xhr_object.open("GET", url, true);
     xhr_object.onreadystatechange = function(){
      if ( xhr_object.readyState == 4 )
     {
     // j'affiche dans la DIV spécifiées le contenu retourné par le fichier
     document.getElementById(position).innerHTML = xhr_object.responseText;
      }
    }
    // dans le cas du get
     xhr_object.send(null);
     }
    </script>
     
    <?php
    $req="select id,nom from table "
    if (!$res=mysql_query($req)) {print $req."<br>".mysql_error();}
    else
     {    
         if ($nb=mysql_num_rows($res)>0){    
     
    ?>
     
     
    <table width="530" border="0" cellspacing="0" cellpadding="2" class="class">
     
    <?    $color="#FFFFFF";
        while ($row=mysql_fetch_array($res))
        {    
                 $CANDid=$row["id"];
             $CANDnom=stripslashes($row["nom"]);
     
     
    ?>
                    <tr class="class1" bgcolor="<? print $color; ?>">
     
                        <td align="left">
                        <b>    <? print $CANDnom; ?></b>
     
                        <div id='centre'>
     
                        </div>
                            </td>    
                        <td>
                          <td valign="center">
    <a href="#" onclick="envoieRequete('tableau.php?PARAM=<? print $CANDid;?>','centre');" ><b>Détails</b></a>   
          <?
              }
    }
    }
     ?>

  2. #2
    Membre éprouvé Avatar de Alt157
    Profil pro
    Inscrit en
    Février 2009
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 143
    Par défaut
    Bonjour,

    Forcement il s'affiche en bas du premier nom vu que tu mets un ID centre il s'affiche dans le premier ID qu'il trouve ( soit dit en passant un ID est censé être unique )

    Essayes donc de faire :

    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
     
    <script type="text/javascript">
    {
     var xhr_object = null;
     var position = id;
     if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
     else
     if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
     
     // On ouvre la requete vers la page désirée
     xhr_object.open("GET", url, true);
     xhr_object.onreadystatechange = function(){
      if ( xhr_object.readyState == 4 )
     {
     // j'affiche dans la DIV spécifiées le contenu retourné par le fichier
     document.getElementById(position).innerHTML = xhr_object.responseText;
      }
    }
    // dans le cas du get
     xhr_object.send(null);
     }
    </script>
     
    <?php
    $req="select id,nom from table "
    if (!$res=mysql_query($req)) {print $req."<br>".mysql_error();}
    else
     {    
         if ($nb=mysql_num_rows($res)>0){    
     
    ?>
     
     
    <table width="530" border="0" cellspacing="0" cellpadding="2" class="class">
     
    <?php    $color="#FFFFFF";
        while ($row=mysql_fetch_array($res))
        {    
                 $CANDid=$row["id"];
             $CANDnom=stripslashes($row["nom"]);
     
     
    ?>
                    <tr class="class1" bgcolor="<? print $color; ?>">
     
                        <td align="left">
                        <b>    <?php print $CANDnom; ?></b>
     
                        <div id='centre<?php echo $CANDid; ?>'>
     
                        </div>
                            </td>    
                          <td valign="center">
    <a href="#" onclick="envoieRequete('tableau.php?PARAM=<?php print $CANDid;?>','centre<?php echo $CANDid; ?>');" ><b>Détails</b></a>
                          </td>
                        </tr>
     
          <?php
              }
    }
    }
     ?>
    Sinon essayes de mettre bien <?php et non <? puisque pour utiliser <?, il faut que ce soit autorisé dans le php.ini au moins avec l autre t'es sur de pas avoir de problemes

    Et une dernière chose qui n'a RIEN à voir avec le PHP, essayes de revoir un peu ton code HTML
    • td, tu en ouvres deux à la suite a un endroit
    • tr, tu ne le fermes pas
    • tu utilises pas mal de choses non css

Discussions similaires

  1. [MySQL] incrementer un tableau dans une boucle
    Par GYK dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/12/2008, 14h23
  2. Réponses: 5
    Dernier message: 09/06/2008, 08h57
  3. [DisplayTag] Affichage d'un tableau dans une page jsp
    Par jihane1 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 10/05/2008, 13h05
  4. Affichage d'un Tableau dans un JLabel
    Par autregalaxie dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 26/04/2007, 13h43
  5. [Mail] Bug d'affichage d'un tableau dans un email
    Par alixe dans le forum Langage
    Réponses: 3
    Dernier message: 22/02/2007, 11h54

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