Affichage info en fonction de la sélection ligne tableau

Résolu
bruno3591 Messages postés 155 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 28 mars 2010 - 16 nov. 2008 à 17:20
saadenaf Messages postés 1 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 24 avril 2010 - 24 avril 2010 à 01:13
Bonjour,

J'ai un tableau ou je peux sélectionner ligne par ligne des enregistrements via ceci : <tr  onclick="location.href='fiche.php'" style="cursor:pointer;" onMouseOut="javascript:this.style.background='#FFFFFF'" onMouseOver="javascript:this.style.background='#E5F483'"><STYLE="display : block;">

Le problème est que quand je clique sur une ligne, elle pointe bien vers 'fiche.php' mais pas vers sa fiche. Donc toutes les lignes pointe au même endroit.

Je pense réussir à résoudre ce problème en me basant sur l'id de chaque ligne.
Comment récupérer l'id d'une ligne pour afficher les informations correspondantes à cette id ?

J'ai une base mysql.

Voici le bout de code du tableau :

<?php


include('connection.inc.php');


  // requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements

$select = "SELECT type, energie, marque, modele, n_serie, annee, n_parc FROM chariot ORDER BY type" ;
$result = mysql_query($select);
$total = mysql_num_rows($result);


if($total) {

?>


                 ----

        Type,
        Energie,
        Marque,
        Modéle,
        N° série,
        N° parc,
        Année,   
        

<?php while($row = mysql_fetch_array($result)) {  ?>

        ----
<STYLE=\"display : block;\">
  
        <?php echo $row['type'] ?>,
        <?php echo $row['energie'] ?>,
        <?php echo $row['marque'] ?>,
        <?php echo $row['modele'] ?>,
        <?php echo $row['n_serie'] ?>,
        <?php echo $row['n_parc'] ?>,
        <?php echo $row['annee'] ?>,   
        

<?php } ?>
        

<?php } ?>

Merci de votre aide.

19 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 13
19 nov. 2008 à 13:38
je t'avais déjà expliqué avant, mais bon, je
    n'avais probablement pas été assez clair...

href :
ben, au lieu d'utiliser le javascript ( quand on peut éviter, c'est toujours mieux )

function recup_id(id)
{ location.href=('fiche_chariot.php?id='+id); }
...onclick="recup_id('<?php echo $row['id'];?>')"...

met un bête lien à la place du onclick !
<tr><td>[fiche_chariot.php?id=<?php echo $row['id'];?> texte]<td>....
par exemple.

          Bul
3
bruno3591 Messages postés 155 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 28 mars 2010
16 nov. 2008 à 19:18
Je me suis relu et je dois dire que ce n'est pas très clair. Je reformule plus court :

J'ai un tableau html renseigné en php par une base sql. Jusque là tout va bien.
Maintenant j'aimerais en cliquant sur une ligne récupérer les enregistrements (pour les afficher et les modifier).
C'est le principe de récupération que je ne connais pas.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 13
17 nov. 2008 à 09:30
bonjour,
comment on devine le contenu de la base de données ?
Tu es télépathe et tu penses que tous les
lecteurs ici le sont également ???

néanmoins,  <tr  onclick="location.href='curatif.php'" ....
ben oui, tu appelles curatif.php, mais faudrait peut-être  lui passer en paramètre
            l'enrgt à modifier non ?

location.href='curatif.php/?enrgt=<?php echo $row['je ne sais pas quoi'] ?>.... par exemple
que curatif.php traitera avec $_GET['enrgt']

Cordialement

           Bul
0
bruno3591 Messages postés 155 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 28 mars 2010
17 nov. 2008 à 11:41
Bonjour Bul,

Ok pour transmettre les info. par url, mais peux-tu me mettre sur la voix pour la syntaxe :
location.href='curatif.php'/?enrgt=<?php echo $row['id'] ?>

Pour curatif.php j'ai mis ça à l'arrivée : <?php  $_GET['id']  ?>

"comment on devine le contenu de la base de données ?"

Qu'entend-tu par "contenu" ? La description de la table sql en question ?
Je pensais que cela pouvais suffire : <td><?php echo $row['type'] ?></td>

A ce propos j'ai fais une modif pour récupérer l'id de mes enreg. :
<td style="{visibility: hidden}">"></td>

Avec toutes c'est modif. évidèment le click sur une ligne du tableau ne fonctionne même plus.

Je suis à l'ouest ? (probable :))
Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 13
17 nov. 2008 à 11:56
le contenu... c'est ce que ça contient ;o)
tu nous met du php... qui génère du html en fonction des données
    de ta base de données justement....  comment peut-on, nous,  deviner/connaitre
    la valeur de ces données ? ta base de données, il n'y a que toi qui l'as !
    il vaut mieux mettre la page html générée, c'est quand même plus simple
    et au moins "on a tout" ( enfin...  un extrait ! )

>>évidèment le click sur une ligne du tableau ne fonctionne même plus.
>>                 location.href='curatif.php'/?enrgt=<?php echo $row['id'] ?>
bah, un souci de syntaxe !
le classique '  "  qui fait que les navigateurs sy pomment
                essaye en "échappant"  l'un ou l'autre ( \' ou  " )

>>>'ai mis ça à l'arrivée : <?php  $_GET['id']  ?>
ah ben... dans ce cas, c'est pas enrgt= qu'il faut mettre mais id=

quand on envoie page.php/?toto=titi coté page.php on utilise $_GET['toto'] ( qui contient 'titi' )
( d'ailleurs un vrai lien href directement au lieu de ce location.href , ce serait-y pas mieux ? )

          Bul
0
bruno3591 Messages postés 155 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 28 mars 2010
17 nov. 2008 à 14:08
Je ne comprend toujours pas tu as besoins des données qui sont dans les variables mais bon les voici, j'ai fais un clic droit afficher la source pour te les coller :

<tr  onclick="recup_id()" style="cursor:pointer;" onMouseOut="javascript:this.style.background='#FFFFFF'" onMouseOver="javascript:this.style.background='#E5F483'"><STYLE="display : block;">
       
        <td id="type">KMS 100</td>
        <td id="energie">Electrique</td>
        <td id="marque">Jungheinrich</td>
        <td id="modele">Nacelle autoportée</td>
        <td id="n_serie">345677788</td>
        <td id="n_parc">CCE 2</td>
        <td id="annee">2004</td>
        <td style="{visibility: hidden}"></td>
        </tr>
           

        <tr  onclick="recup_id()" style="cursor:pointer;" onMouseOut="javascript:this.style.background='#FFFFFF'" onMouseOver="javascript:this.style.background='#E5F483'"><STYLE="display : block;">
       
        <td id="type">NO20S</td>
        <td id="energie">Electrique</td>
        <td id="marque">Caterpillar</td>
        <td id="modele">Préparateur de commande au sol</td>
        <td id="n_serie">2147483647</td>
        <td id="n_parc">PE 1</td>
        <td id="annee">2002</td>
        <td style="{visibility: hidden}"></td>
        </tr>

j'ai tenté ça pour échapper les ' mais rien n'y fait :
function recup_id()
{
     location.href=\'fiche_chariot.php'/?id=<?php echo $row['id'] ?>
}

"d'ailleurs un vrai lien href directement au lieu de ce location.href , ce serait-y pas mieux ? "
comment tu fais ça ?

J'aimerais bien arrêter d'être boulet les gars ! Ca va s'arrager avec le temps. Merci de votre aide
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 13
17 nov. 2008 à 14:43
même toi tu devrais regardé ce que ça génère !

affiche la source et regarde ta fonction !
tu vas avoir quoi à la place de <?php echo $row['id'] ?> ?
il faut le faire à chaque tr,
appeler cette fonction avec le paramètre <?php echo $row['id'] ?> si tu veux.

de plus... il y a comme des erreurs de syntaxe !

javascript ne vas pas aimer du tout location.href=''fiche_chariot.php'/?id=?????probablement rien
déjà; il va te dire :

je ne parviens pas à faire la division ( / )
? mal venu
id inconnu
= mal venu
<?php echo $row['id'] ?>    ( je te met ça, comme je ne sais pas ce qu'il y a en html !!! )  inconnu

Cordialement

          Bul
0
bruno3591 Messages postés 155 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 28 mars 2010
18 nov. 2008 à 07:48
tu vas avoir quoi à la place de <?php echo $row['id'] ?> ?
j'ai value= "5" par exemple.
le php et l'html sont sur la même page. "( je te met ça, comme je ne sais pas ce qu'il y a en html !!! )  inconnu"

Concernant les caractères /? j'ai repris ton : location.href='curatif.php/?enrgt=<?php echo $row[' je ne sais pas quoi '] ?>...
comme je ne sais pas à quoi ils servent je l'ai est repris...

j'ai beaucoup de problème avec la syntaxe tu a du remarqué. je tente toujours de transmettre l'enregistrement de la ligne cliqué, avec l'id de celle-ci avec ça :  location.href ='fiche_chariot.php' id=<?php echo $row['id'] ?> ou ça  location.href='fiche_chariot.php' enrgt=<?php echo $row['id'] ?>

Bien entendu ça ne fonctionne pas. En même temps je fais des recherches pour comprendre ce que tu tentes désespérément de faire rentrer dans ma caboche mais je sèche lamentablement sur ce petit exercice.

Bonne journée.
0
bruno3591 Messages postés 155 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 28 mars 2010
18 nov. 2008 à 08:29
C'est bon j'ai trouvé la syntaxe et ça fonctionne : location.href=('fiche_chariot.php?id=<?php echo $row['id'];?>')

Par contre mon <?php $_GET['id']  sur la page fiche_chariot.php ne ramène rien, dans l'url il y a ceci : .../fiche_chariot.php?id=
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 13
18 nov. 2008 à 10:26
ben oui... c'est normal.
regarde ce qu la page html contient.
et essaye de comprendre ce qui se passe lorsque le php la génère !
          Bul
0
bruno3591 Messages postés 155 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 28 mars 2010
18 nov. 2008 à 18:53
Je suis bloqué.

"essaye de comprendre ce qui se passe lorsque le php la génère !"
justement il ne se passe rien, l'url ne transmet pas l'id. Pourquoi ceci <?php echo $row['id']?> ne renvoi pas l'id ?? Est-ce les balises form qui manquent pour envoyer en formulaire ??

function recup_id()
{
     location.href=('fiche_chariot.php?id=<?php echo $row['id']?>')
}

if($total) {
?>
          <form method="get" action="">
                 ----

        Type,
        Energie,
        Marque,
        Modéle,
        N° série,
        N° parc,
        Année,   
        
      <?php while($row = mysql_fetch_array($result)) { ?>

  ----
<STYLE=\"display : block;\">
  
     <?php echo $row['type'] ?>,
     <?php echo $row['energie'] ?>,
      <?php echo $row['marque'] ?>,
     <?php echo $row['modele'] ?>,
     <?php echo $row['n_serie'] ?>,
     <?php echo $row['n_parc'] ?>,
     <?php echo $row['annee'] ?>,
     ">,
  
   
<?php } ?>

  

  
<?php } ?>
  </form> 

Mais ça ne fonctionne pas.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 13
19 nov. 2008 à 09:20
mais enfin... tu met toujours le php ?
tu le fais exprès ? tu ne lis pas mes questions/réponses ? tu n'as pas compris ?

function recup_id()
{   location.href=('fiche_chariot.php?id=<?php echo $row['id']?>')  }
ça c'est coté php

coté client, ça va donner :
function recup_id()

{ location.href=('fiche_chariot.php?id=')  }
puisque $row['id']  ça n'existe pas ....

je t'ai ( déjà ) dis : appelles cette fonction ( si tu y tiens ) en lui passant le paramètre
( même si perso, je ferais un bête lien href )

function recup_id(toto)
{ location.href=('fiche_chariot.php?id='+toto);  }

et dans tes tr :
<tr  onclick="recup_id('<?php echo $row['id'];?>')" style="cursor:pointer;"

( sans préjuger du reste )

tu n'as probablement pas pigé les relations php/javascript ?
0
bruno3591 Messages postés 155 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 28 mars 2010
19 nov. 2008 à 09:20
Pour que ça fonctionne, ne faut_il pas activer les register_globals dans php ? Pour le moment elles sont désactivés
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 13
19 nov. 2008 à 09:38
avant de faire cela ( si c'est nécessaire ? ) rectifie d'abord
         les erreurs sus-dites
          Bul
0
bruno3591 Messages postés 155 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 28 mars 2010
19 nov. 2008 à 13:08
Merci Bul pour ton aide.

Ca fonctionne enfin :

function recup_id(id)
{ location.href=('fiche_chariot.php?id='+id); }

onclick="recup_id('<?php echo $row['id'];?>')"

J'ai bien l'id qui s'affiche sur la page fiche_chariot.php avec echo $_GET['id'];
Maintenant si je veux afficher toutes les autres valeurs de mes variables je l'ai ajoutent au bout de onclick="recup_id('<?php echo $row['id'];?><.......')"

je n'avais pas compris qu'il fallait mettre un paramètre dans la parenthèse : function recup_id(id) <---
et surtout je ne donné pas de valeur à la fonction : onclick="recup_id( )
Sur cette ligne j'avais des problème de syntaxe : location.href=('fiche_chariot.php?id='+id); avec le ='+

Tu disais qu'il y a plus simple avec un href ?
0
bruno3591 Messages postés 155 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 28 mars 2010
19 nov. 2008 à 14:24
Oui mais en mettant le href dans le td, la ligne n'est plus cliquable, mais seulement la cellule.

Si je récupère uniquement l'id de mon enregistrement dans la page d'arrivée, j'imagine pouvoir reconstitué tous mon enregistrement avec une requéte select ?
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 13
19 nov. 2008 à 14:29
certes... mais une ch'tiote image sera bien plus claire
            que deviner que la ligne est cliquaable....
m'enfin... chacun fait comme il le sent....
          Bul
0
bruno3591 Messages postés 155 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 28 mars 2010
19 nov. 2008 à 15:15
pour l'image j'ai la "main" qui indique que c'est un lien. :)

style="cursor:pointer;
0
saadenaf Messages postés 1 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 24 avril 2010
24 avril 2010 à 01:13
interssante discussion j'ai le meme probleme que vous j'ai un tableau cree dynamiquement par une requete php
lorsque je clique sur une ligne je dois recuperer la valeur du champs reference et l'envoyer a un autre fichier qui m'affichera resultat detaillé et la je suis coincé,,,svp si vous pouvez me refiler le code si vous l'avez reussi...je te file mon code :
$gris = false;
while($row = mysql_fetch_array($result)) {
if ($gris) $gris=false; else $gris=true;
if ($gris)


{echo "<tr bgcolor='#E8E8E8' onclick=location.href='ficheupdate2.php' style="cursor:pointer;" onMouseover="this.style.backgroundColor='#99FF99'" onmouseOut="this.style.backgroundColor=''" >";

}

else
{
echo "<tr bgcolor='#F8F8F8' onclick=location.href='ficheupdate2.php' style="cursor:pointer;" onMouseover="this.style.backgroundColor='#99FF99'" onmouseOut="this.style.backgroundColor=''"> ";
}
0