Je suis pas certain d'avoir tout saisi mais en gros tu as une liste de noms et lorsque ce nom est cliqué les infos de cette personne s'affichent.
Si c'est le cas je suppose que chaque personne est inséré avec ses informations respectives en base de données type "TABLE personnel avec id, nom, matricule,naissance".
Je suppose aussi que tu as sorti ta liste via une boucle type :
public function loadList(){
$data=array();
$r=$this->db->query('SELECT id,nom FROM personnel ORDER BY id');
foreach($r as $d){
$data[]=$d;
}
return $data;
}
Ensuite il faut juste que dans ton echo de sortie tu attribues l'id du nom au lien type :
// Avec un lien <a></a> en display block.
<li>
<a href="#" id="peronnel<?php echo intval($id); ?>" class="personnelBt"><?php echo htmlspecialchars($nom);</a>
<div id="affichage<?php echi intval($id); ?>" class="affichageBlock"></div>
</li>
Tu as juste à utiliser du javascript ou même plus simplement écrire via jQuery tes options d'affichage pour le div vide.
Exemple rapide :
[javascript]
$(document).ready(function(){
// Ta fonction de click
function personnelBt(){
$('.personnelBT').click(function(){
var n=$(this).attr('id').substr(8,4);
$('.personnelBT .affichageBlock').empty();
idRequest($('.personnelBt #affichage'+n),n);
});
}
// Ta fonction de recherches d'infos
function idRequest($d,$n){
$d.html('Chargement');
$.ajax({
type:'GET',
url:'tonFichierManager.php',
data:'personnelInfos='+x,
success:function(result){
d.html(result);
d.slideDown();
}
}
personnelBt();
});
[/javascript]
Dans ton fichier php appelé via xhr tu n'as plus qu'à insérer les infos souhaités.
if(isset($_GET['personnelInfos'])){
$n=int($_GET['personnelInfos']);
$c=$this->db->query('SELECT COUNT(id) AS x FROM personnel WHERE id=\''.$n.'\'');
$d=$c->fetch();
if($d['x']!=0){
$r=$this->db->query('SELECT nom,matricule,naissance FROM personnel WHERE id=\''.$n.'\'');
$data=$r->fetch();
// Pas terrible d'intégrer ça en echo mais c'est juste un exemple
echo '
<p class="matricule">'.$data['matricule].'</p>
<p class="photo"><img src="tonDossier/trf'.$n.'.png" alt="'.$data['nom'].'" /></p>
';
}
}
C'est juste un exemple à ne pas recopier, c'est rudimentaire et je ne vais probablement pas me relire.
Une autre méthode consisterait à intégrer directement les infos de la personne dans le div avec un display none et de jouer sur sa visibilité via js mais tu aurais l'ensemble des images dans le temps de chargement.
Voilà, bonne journée.
Je suis pas certain d'avoir tout saisi mais en gros tu as une liste de noms et lorsque ce nom est cliqué les infos de cette personne s'affichent.
Si c'est le cas je suppose que chaque personne est inséré avec ses informations respectives en base de données type "TABLE personnel avec id, nom, matricule,naissance".
Je suppose aussi que tu as sorti ta liste via une boucle type :
[php]
public function loadList(){
$data=array();
$r=$this->db->query('SELECT id,nom FROM personnel ORDER BY id');
foreach($r as $d){
$data[]=$d;
}
return $data;
}
[/php]
Ensuite il faut juste que dans ton echo de sortie tu attribues l'id du nom au lien type :
[php]
// Avec un lien <a></a> en display block.
<li>
<a href="#" id="peronnel<?php echo intval($id); ?>" class="personnelBt"><?php echo htmlspecialchars($nom);</a>
<div id="affichage<?php echi intval($id); ?>" class="affichageBlock"></div>
</li>
[/php]
Tu as juste à utiliser du javascript ou même plus simplement écrire via jQuery tes options d'affichage pour le div vide.
Exemple rapide :
[javascript]
$(document).ready(function(){
// Ta fonction de click
function personnelBt(){
$('.personnelBT').click(function(){
var n=$(this).attr('id').substr(8,4);
$('.personnelBT .affichageBlock').empty();
idRequest($('.personnelBt #affichage'+n),n);
});
}
// Ta fonction de recherches d'infos
function idRequest($d,$n){
$d.html('Chargement');
$.ajax({
type:'GET',
url:'tonFichierManager.php',
data:'personnelInfos='+x,
success:function(result){
d.html(result);
d.slideDown();
}
}
personnelBt();
});
[/javascript]
Dans ton fichier php appelé via xhr tu n'as plus qu'à insérer les infos souhaités.
[php]
if(isset($_GET['personnelInfos'])){
$n=int($_GET['personnelInfos']);
$c=$this->db->query('SELECT COUNT(id) AS x FROM personnel WHERE id=\''.$n.'\'');
$d=$c->fetch();
if($d['x']!=0){
$r=$this->db->query('SELECT nom,matricule,naissance FROM personnel WHERE id=\''.$n.'\'');
$data=$r->fetch();
// Pas terrible d'intégrer ça en echo mais c'est juste un exemple
echo '
<p class="matricule">'.$data['matricule].'</p>
<p class="photo"><img src="tonDossier/trf'.$n.'.png" alt="'.$data['nom'].'" /></p>
';
}
}
[/php]
C'est juste un exemple à ne pas recopier, c'est rudimentaire et je ne vais probablement pas me relire.
Une autre méthode consisterait à intégrer directement les infos de la personne dans le div avec un display none et de jouer sur sa visibilité via js mais tu aurais l'ensemble des images dans le temps de chargement.
Voilà, bonne journée.