11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour a tous,

J'ai un petit probleme d'affichage de photo.
Voici deux liens pour illustrer mon probleme :
- http://s145608600.onlinehome.fr/menu.php
Sur ce premier lien, si vous parcourez l'arborescence "René/Alain/Diane", vous pourrez voir les photos de leurs enfants (pour l'instant des silhouettes).

- http://s145608600.onlinehome.fr/menu2.php
Sur ce deuxieme lien, j'ai tenté d'afficher la photo des parents en reprenant exactement le meme code. On peut lire "undefined".

Quelqu'un saurait t'il m'aider ? Merci d'avance

Voici le JS :

Code :


    // paramétrage :
idMenu = 'menu'
idAncre = 'ancre_menu'
// mettre 0 pour désactiver une option :
mno = 0 // un seul sous-menu ouvert par niveau
lien_ouvert = location // lien ouvert par défaut


function initMenu(){
var pm;menuOuvert=[];// tableau des menus ouverts
objMenu=document.getElementById(idMenu);objMenu.className='menu';
liste=objMenu.getElementsByTagName('li');
for(i=0;i<liste.length;i++){L=liste[i];lien=L.firstChild.href;
  if(lien){L.className="normal" 
  // repère le lien de la page en cours
    if(lien == lien_ouvert){
      pm=L.parentNode;L.firstChild.className="lien_page"
    }
  }
  //ajoute un titre cliquable
  if(L.getElementsByTagName('ul')[0]){ // sous-menu éxistant
    titre=L.firstChild.data;L.removeChild(L.firstChild);
    L.innerHTML='<a title="développer" onkeydown="af(this)" onmousedown="af(this,1);return false">'+titre+'<\/a>'+L.innerHTML;
    ef(L.firstChild) // réduit les sous_menus
  }
}
// montre le lien de la page et ouvre les menus parents
gf=0;if(pm)while(pm.id!=idMenu && gf<30){af(pm.parentNode.firstChild);pm=pm.parentNode.parentNode}
ancreMenu();
} 

function ancreMenu(){ // déplace le menu construit dans l'élément désigné.
  ancre=document.getElementById(idAncre);
  if(ancre){ancre.appendChild(objMenu);ancre.className='ancre_menu'}
}

function ef(el) { // réduit.
with (el){
  parentNode.getElementsByTagName('ul')[0].style.display="none";
  title="développer";parentNode.className="reduit";
  }
return false
}

function af(el,mulot) { // développe un sous-menu .
if(mulot)el.removeAttribute('href') // supprime le lien prévu pour la navigation clavier.
with(el){sous_menu=parentNode.getElementsByTagName('ul')[0]
  if(sous_menu.style.display=="none"){
    sous_menu.style.display="block";title="réduire";parentNode.className="ouvert";
   } else {sous_menu.style.display="none";title="développer";parentNode.className="reduit";}
  }
  niveau=0;
  // un seul menu ouvert par niveau
  while(sous_menu.id!=idMenu&& niveau<30){niveau++;sous_menu=sous_menu.parentNode.parentNode}
  if(menuOuvert[niveau] && el!=menuOuvert[niveau] && mno)ef(menuOuvert[niveau]);menuOuvert[niveau]=el;
}

// Fonction pour ajouter ou enlever un événement sans écraser l'éxistant. 
function addEvent(obj,evType,fn,capt){
if(obj.addEventListener){obj.addEventListener(evType,fn,capt);return true;} // DOM 2
else if(obj.attachEvent)obj.attachEvent("on"+evType,fn) // IE 5+
else {return false;}
} 

addEvent(window,"load",initMenu)
//-->


Et voici un bout du .php qui appel l'image :

					
<li><a href="javascript:void(0);" onmouseover="return overlib('<p align=center><strong><?php echo $dataGen3E['fam_prenom']; ?></strong></p><img src=<?php echo $dataGen3E['fam_url_photo'];?>>');" onmouseout="return nd();"><div style=background-color:#000000><?php echo $dataGen3E['fam_prenom']; ?></div></a> <?php 
							echo '<ul>';
							while ($dataGen3E = mysql_fetch_assoc($reqGen3E)){  ?>
								<li><a href="javascript:void(0);" onmouseover="return overlib('<p align=center><strong><?php echo $dataGen3E['fam_prenom']; ?></strong></p><img src=<?php echo $dataGen3E['fam_url_photo'];?>>');" onmouseout="return nd();"><?php echo $dataGen3E['fam_prenom']; ?></a> <?php
								} 



Je code JS ci dessu ne semble pas gérer les images, connaissez vous un moyen plus simple peut-etre, pour obtenir une liste qui se déploit et qui me permettrait de mettre des images ? (Je dois préciser que je ne m'y connais pas en JS, c'est bien la le pb ^^)[/i]
Modifié par tely22 (28 Sep 2006 - 14:57)