Affichage info en fonction de la sélection ligne tableau [Résolu]

Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Statut
Membre
Dernière intervention
28 mars 2010
- - Dernière réponse : 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.
Afficher la suite 

19 réponses

Meilleure réponse
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Bul3
Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Statut
Membre
Dernière intervention
28 mars 2010
0
Merci
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.
Commenter la réponse de bruno3591
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
0
Merci
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
Commenter la réponse de Bul3
Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Statut
Membre
Dernière intervention
28 mars 2010
0
Merci
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.
Commenter la réponse de bruno3591
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
0
Merci
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
Commenter la réponse de Bul3
Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Statut
Membre
Dernière intervention
28 mars 2010
0
Merci
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
Commenter la réponse de bruno3591
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
0
Merci
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
Commenter la réponse de Bul3
Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Statut
Membre
Dernière intervention
28 mars 2010
0
Merci
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.
Commenter la réponse de bruno3591
Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Statut
Membre
Dernière intervention
28 mars 2010
0
Merci
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=
Commenter la réponse de bruno3591
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
0
Merci
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
Commenter la réponse de Bul3
Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Statut
Membre
Dernière intervention
28 mars 2010
0
Merci
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.
Commenter la réponse de bruno3591
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
0
Merci
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 ?
Commenter la réponse de Bul3
Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Statut
Membre
Dernière intervention
28 mars 2010
0
Merci
Pour que ça fonctionne, ne faut_il pas activer les register_globals dans php ? Pour le moment elles sont désactivés
Commenter la réponse de bruno3591
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
0
Merci
avant de faire cela ( si c'est nécessaire ? ) rectifie d'abord
         les erreurs sus-dites
          Bul
Commenter la réponse de Bul3
Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Statut
Membre
Dernière intervention
28 mars 2010
0
Merci
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 ?
Commenter la réponse de bruno3591
Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Statut
Membre
Dernière intervention
28 mars 2010
0
Merci
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 ?
Commenter la réponse de bruno3591
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
0
Merci
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
Commenter la réponse de Bul3
Messages postés
155
Date d'inscription
dimanche 28 septembre 2008
Statut
Membre
Dernière intervention
28 mars 2010
0
Merci
pour l'image j'ai la "main" qui indique que c'est un lien. :)

style="cursor:pointer;
Commenter la réponse de bruno3591
Messages postés
1
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
24 avril 2010
0
Merci
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=''"> ";
}
Commenter la réponse de saadenaf