Page 1 sur 1
Afficher au clic les infos sur un membre
Posté : 23 mai 2015, 13:22
par Johanna
Bonjour,
J'ai créée une table "membre" dans laquelle les informations sur les membres inscrits sont recensées et après je les affiche dans une datatable exemple ici
http://johannausinabia.com/artisans/annuaire.php
le problème c'est que je ne sais pas comment faire pour selectionner un des membres dans ce tableau et rediriger vers une page "profil_membre" et avoir seulement les informations sur le membre selectionné.
Voici ce que j'ai écris pour le moment
Code : Tout sélectionner
<?php
// ---------------------------------------------------
$resultat = $pdo->query('SELECT prenom, nom, metier, cp FROM membrea ORDER BY prenom DESC' , PDO::FETCH_ASSOC);
foreach($resultat as $membre) // Pour chaque employé
{ //echo '<pre>'; print_r($ligne); echo '</pre>';
$content .= "<tr>";
foreach($membre as $indice => $info) // Pour chaque information sur 1 employé
{
$content .= "<td>$info</td>";
}
$content .= "</tr>";
}
$content .= '</table>';
//echo $content;
?>
<div class="resultat-artisan">
<div class="col-md-12">
<table id="example" class="display" cellspacing="0">
<thead>
<tr>
<th class="th-avatar">Prénom</th>
<th class="th-avatar">Nom</th>
<th class="th-avatar">Métier</th>
<th class="th-avatar">Code postal</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<?php echo $content; ?>
</td>
</tr>
</tbody>
</table>
</div>
</div> <!-- FIN container actualite -->
Le problème c'est que déjà quand je met un <a href> sur <?php echo $content; ?> ça ne fonctionne pas, ce n'est que les titres qui sont cliquable.
Merci de votre aide
Re: Afficher au clic les infos sur un membre
Posté : 23 mai 2015, 13:36
par Saian
Salut, dans ta boucle foreach($resultat as $membre) et après la boucle sur les colonnes, tu peux par exemple ajouter une 5ème colonne avec un lien Détail qui pointerait sur une page membre.php?id=n.
Re: Afficher au clic les infos sur un membre
Posté : 23 mai 2015, 14:04
par Johanna
J'ai rajouté une colonne comme tu me le conseilles <th class="th-avatar">Détail</th> , mais je ne vois pas quoi écrire dans ma boucle pour la remplir. Je ne vois pas comment rediriger vers la page
Salut, dans ta boucle foreach($resultat as $membre) et après la boucle sur les colonnes, tu peux par exemple ajouter une 5ème colonne avec un lien Détail qui pointerait sur une page membre.php?id=n.
Code : Tout sélectionner
<div class="resultat-artisan">
<div class="col-md-12">
<table id="example" class="display" cellspacing="0">
<thead>
<tr>
<th class="th-avatar">Prénom</th>
<th class="th-avatar">Nom</th>
<th class="th-avatar">Métier</th>
<th class="th-avatar">Code postal</th>
<th class="th-avatar">Détail</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<?php echo $content; ?>
</td>
</tr>
</tbody>
</table>
</div>
</div> <!-- FIN container actualite -->
Re: Afficher au clic les infos sur un membre
Posté : 23 mai 2015, 14:10
par Saian
En admettant qu'il y ai bien une colonne id sur la table membre :
<?php
/* --------------------------------------------------- */
$resultat = $pdo->query('SELECT id, prenom, nom, metier, cp FROM membrea ORDER BY prenom DESC' , PDO::FETCH_ASSOC);
foreach($resultat as $membre) /* Pour chaque employé */
{
$content .= "<tr>";
foreach($membre as $indice => $info) /* Pour chaque information sur 1 employé */
{
if($indice != 'id')
$content.= "<td>$info</td>";
}
$content.= '<td><a href="membre.php?id='.$membre['id'].'">Détail</a></td>';
$content.= "</tr>";
}
$content.= '</table>';
?>
Re: Afficher au clic les infos sur un membre
Posté : 23 mai 2015, 14:23
par Johanna
ça ne fonctionne pas, ça me met "Notice: Undefined index: idMembre in /Applications/XAMPP/xamppfiles/htdocs/php/artisans/annuaire.php on line 86"
Ma colonne id dans ma table s'appelle idMembre donc j'ai écrit
Code : Tout sélectionner
$resultat = $pdo->query('SELECT prenom, nom, metier, cp FROM membrea ORDER BY prenom DESC' , PDO::FETCH_ASSOC);
// permet d'accéder à la table membre et récupérer les information sous forme de tableau grace à FETCH_ASSOC
foreach($resultat as $membre) // Pour chaque membres
{ //echo '<pre>'; print_r($ligne); echo '</pre>';
$content .= "<tr>";
foreach($membre as $indice => $info) // Pour chaque information sur 1 membre
{
if($indice != 'id')
$content .= "<td>$info</td>";
}
$content.= '<td><a href="membre.php?id='.$membre['idMembre'].'">Détail</a></td>';
$content .= "</tr>";
}
$content .= '</table>';
//echo $content;
?>
Re: Afficher au clic les infos sur un membre
Posté : 23 mai 2015, 14:52
par Johanna
J'avais oublié "idMembre" dans ma requète.
Maintenant ça me donne ça
"Notice: Undefined index: prenom in /Applications/XAMPP/xamppfiles/htdocs/php/artisans/membre.php on line 1" quand je clique sur détail et que j'arrive sur la page "membre.php"
voici l'url que ça me met
http://localhost/php/artisans/membre.php?id=7 donc ça a l'air de bien récupérer l'id
Code : Tout sélectionner
<?php
// ---------------------------------------------------
$resultat = $pdo->query('SELECT idMembre, prenom, nom, metier, cp FROM membrea ORDER BY prenom DESC' , PDO::FETCH_ASSOC);
// permet d'accéder à la table membre et récupérer les information sous forme de tableau grace à FETCH_ASSOC
foreach($resultat as $membre) // Pour chaque membres
{ //echo '<pre>'; print_r($ligne); echo '</pre>';
$content .= "<tr>";
foreach($membre as $indice => $info) // Pour chaque information sur 1 membre
{
if($indice != 'id')
$content .= "<td>$info</td>";
}
$content.= '<td><a href="membre.php?id='.$membre['idMembre'].'">Détail</a></td>';
$content .= "</tr>";
}
$content .= '</table>';
//echo $content;
?>
<div class="resultat-artisan">
<div class="col-md-12">
<table id="example" class="display" cellspacing="0">
<thead>
<tr>
<th class="th-avatar">id</th>
<th class="th-avatar">Prénom</th>
<th class="th-avatar">Nom</th>
<th class="th-avatar">Métier</th>
<th class="th-avatar">Code postal</th>
<th class="th-avatar">Détail</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<?php echo $content; ?>
</td>
</tr>
</tbody>
</table>
Et voici mon code de ma page membre.php
Une idée d'où vient le problème?
Re: Afficher au clic les infos sur un membre
Posté : 23 mai 2015, 15:28
par tof73
tu passes à la page membre le paramètre id, et pas les autres comme prenom, nom.
il faut donc faire une requete dans ta table à partir de cet id pour recuperer les autres champs que tu veux afficher.
Re: Afficher au clic les infos sur un membre
Posté : 23 mai 2015, 15:35
par johanna
tu passes à la page membre le paramètre id, et pas les autres comme prenom, nom.
il faut donc faire une requete dans ta table à partir de cet id pour recuperer les autres champs que tu veux afficher.
J'ai essayé en faisant ça mais ça ne marche pas non plus, ça me met "Notice: Undefined index: prenom in /Applications/XAMPP/xamppfiles/htdocs/php/artisans/membre.php on line 33"
Code : Tout sélectionner
<?php
$sth= $pdo->prepare('SELECT prenom, nom, metier, cp FROM membrea WHERE idMembre = :id');
$sth->execute(array(':id'=>$_GET['id']));
echo $_GET['prenom'];
?>
Re: Afficher au clic les infos sur un membre
Posté : 23 mai 2015, 16:01
par johanna
Sujet résolu
j'ai fait
Merci de votre aide !