[menu javascript//php/mysql ?]

Eléphanteau du PHP | 40 Messages

23 févr. 2006, 15:15

Par rapport a ma base de donnée il devrait avoir 2 menus, 1 composé de 1 sousmenu et 1 autre composé de 4 sous menu, par rapport a mon jeu d'essai.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 févr. 2006, 15:20

Ok ça devrai faire l'affaire pour le test

j'ai éditer mon précédent message pour y ajouter un bout de code à corriger l'as tu vu ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 40 Messages

23 févr. 2006, 15:23

oui je l ai vu

avec l'ajout de ta part j'ai :

Code : Tout sélectionner

message du else1 message du else2 message du else2 message du else2
maintenant

et en code source:
<body> 
<dl id="menu1"> 
 
message du else1 
  <dt onmouseover="javascript:montre('smenu<? echo $i; ?>');" onmouseout="javascript:montre();"> 
    <a href="#"><? echo $data['applicationModM']; ?></a> 
  </dt> 
    <dd id="smenu<? echo $i; ?>" onmouseover="javascript:montre('smenu<? echo $i; ?>');" onmouseout="javascript:montre();"> 
      <ul> 
       
        <li><a href="#"><? echo $data['nomFiche']; ?></a></li>           
message du else2       
        <li><a href="#"><? echo $data['nomFiche']; ?></a></li>           
message du else2       
        <li><a href="#"><? echo $data['nomFiche']; ?></a></li>           
message du else2       
        <li><a href="#"><? echo $data['nomFiche']; ?></a></li>           
 
            </ul> 
            </dd> 
 
  <dt onmouseover="javascript:montre('smenu<? echo $i; ?>');" onmouseout="javascript:montre();"> 
    <a href="#"><? echo $data['applicationModM']; ?></a> 
  </dt> 
    <dd id="smenu<? echo $i; ?>" onmouseover="javascript:montre('smenu<? echo $i; ?>');" onmouseout="javascript:montre();"> 
      <ul> 
       
        <li><a href="#"><? echo $data['nomFiche']; ?></a></li>           
   
         
</dl> 
</body> 
donc bien 4 + 1 :wink: ca devient bon :)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 févr. 2006, 15:32

effectivement ça devient bon... par contre il y a toujours le code php qui est visible !! On devrait voir les noms des menus et sous menus.

Autre petite correction, l'incrémentation de $i ne doit pas se faire a chaque tour de boucle mais seulement dans le cas ou un Menu (donc grande rubrisue) est crée.

il faut donc remonter $i++ apres ces lignes:
<dd id="smenu<? echo $i; ?>" onmouseover="javascript:montre('smenu<? echo $i; ?>');" onmouseout="javascript:montre();">
      <ul>
<?$i++;
} // juste pour marquer la fin du test if($menu != $data['applicationModM'])

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 40 Messages

23 févr. 2006, 15:47

effectivement ça devient bon... par contre il y a toujours le code php qui est visible !! On devrait voir les noms des menus et sous menus.
C'est bien moi le plus embeter, je reposte mon code complet après toute ses modifications on ne sais jamais :roll:
il faut donc remonter $i++ apres ces lignes:
<dd id="smenu<? echo $i; ?>" onmouseover="javascript:montre('smenu<? echo $i; ?>');" onmouseout="javascript:montre();">
      <ul>
<?$i++;
} // juste pour marquer la fin du test if($menu != $data['applicationModM'])
Exact je viens de voir, donc j'ai avec l echo $i = 3, normal il est à 1 a la base, et 2 grands menus sont ajouté.

merci encore :wink:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> 
<head> 
<title>Test menu6</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<link href="css/style3.css" rel="stylesheet" type="text/css" /> 
<script type="text/javascript"> 
/* <![CDATA[ */ 
window.onload=montre; 
function montre(id) 
{ 
    var d = document.getElementById(id); 
    for (var i = 1; i<=10; i++) 
    { 
        if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';} 
    } 
    if (d) {d.style.display='block';} 
} 
/* ]]> */ 
</script> 
</head> 
<body> 
<dl id="menu1"> 
<?php 
include ("mysqlconnect.php"); 

//requete grandes rubriques 
$sql = "SELECT m.applicationModM, f.nomFiche ". 
       "FROM modulemis m, fiches f ". 
       "WHERE enseigne = m.applicationModM ". 
       "ORDER BY m.applicationModM, f.nomFiche"; 
$requete = mysql_query($sql);
 
$menu= "";
$i = 1; 
$fin = false; 
while($data = mysql_fetch_array($requete)) 
	{ 
    if($menu != $data['applicationModM']) 
		{ 
		$menu = $data['applicationModM'];
		if($i > 1) 
        { 
?> 
            </ul> 
            </dd> 
<?php 
        } 
        else 
        { 
            echo'message du else1'; 
        } 
?> 
  <dt onmouseover="javascript:montre('smenu<? echo $i; ?>');" onmouseout="javascript:montre();"> 
    <a href="#"><? echo $data['applicationModM']; ?></a> 
  </dt> 
    <dd id="smenu<? echo $i; ?>" onmouseover="javascript:montre('smenu<? echo $i; ?>');" onmouseout="javascript:montre();"> 
      <ul> 
<?php $i++;
		} 
    else 
    { 
        echo'message du else2'; 
    } 
?>       
        <li><a href="#"><? echo $data['nomFiche']; ?></a></li>           
<?php 
     
	}
echo $i;	
?>   
         
</dl> 
</body> 
</html> 

Eléphanteau du PHP | 40 Messages

23 févr. 2006, 15:52

Par contre j'ai essayer 1 chose

remplacer les $menu != $data['applicationModM']) par
$menu != $data['m.applicationModM'])

seulement mes échos donne:
message du else2
message du else2
message du else2
message du else2
message du else2
1

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 févr. 2006, 16:04

[-X non, il ne faut pas faire appel a l'alias ( m. ) pour l'affichage de la variable.

et il n'y a toujours pas de contenu qui s'affiche ?

essai en y ajoutant un mot par défaut l(MENU )ors de l'affichage:
<dt onmouseover="javascript:montre('smenu<? echo $i; ?>');" onmouseout="javascript:montre();">
    <a href="#">MENU <? echo $data['applicationModM']; ?></a>
  </dt>

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 40 Messages

23 févr. 2006, 16:07

Le résultat:

message du else1
Menu
message du else2
message du else2
message du else2

Menu
3

Je rappel le but de tout ca pour moi c'est faire 1 menu comme celui la:
http://css.alsacreations.com/modelesmenus/vd1.htm

selon mes données :wink:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 févr. 2006, 16:09

le php n'est pas interpété comme il faut pour l'affichage mais ok pour les tests, essai en ouvrant les balises comme ceci (<?php ):
<?php echo $data['applicationModM']; ?>
Va falloir adapter par rapport a celui ci changements mineurs par rapport au code

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 40 Messages

23 févr. 2006, 16:16

ca avance j ai remplacé tout les <? en <?php et ouf les données s'affichent

J'ai bien les 2 menus et quand je passe le curseur dessu apparaisse 4 + 1 sous menus

seulement ca apparait sous forme de texte simple 'jaurai voulu comme http://css.alsacreations.com/modelesmenus/vd1.htm pourtant mon code ne devrait pas réalise cela ?
Modifié en dernier par vincedjs le 23 févr. 2006, 16:18, modifié 1 fois.

Eléphanteau du PHP | 40 Messages

23 févr. 2006, 16:17

je reposte mon code remis a jour :lol:
<body> 
<dl id="menu1"> 
<?php 
include ("mysqlconnect.php"); 

//requete grandes rubriques 
$sql = "SELECT m.applicationModM, f.nomFiche ". 
       "FROM modulemis m, fiches f ". 
       "WHERE enseigne = m.applicationModM ". 
       "ORDER BY m.applicationModM, f.nomFiche"; 
$requete = mysql_query($sql);
 
$menu= "";
$i = 1; 
$fin = false; 
while($data = mysql_fetch_array($requete)) 
	{ 
    if($menu != $data['applicationModM']) 
		{ 
		$menu = $data['applicationModM'];
		if($i > 1) 
        { 
?> 
            </ul> 
            </dd> 
<?php 
        } 
?> 
  <dt onmouseover="javascript:montre('smenu<?php echo $i; ?>');" onmouseout="javascript:montre();"> 
    <a href="#"> Menu <?php echo $data['applicationModM']; ?></a> 
  </dt> 
    <dd id="smenu<?php echo $i; ?>" onmouseover="javascript:montre('smenu<?php echo $i; ?>');" onmouseout="javascript:montre();"> 
      <ul> 
<?php $i++;
		} 
?>       
        <li><a href="#"><?php echo $data['nomFiche']; ?></a></li>           
<?php 
     
	}	
?>   
         
</dl>

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 févr. 2006, 16:26

le code que tu as se base sur cet exempl:
http://css.alsacreations.com/modelesmenus/vd2.htm

sinon changements:
while($data = mysql_fetch_array($requete))
    {
    if($menu != $data['applicationModM'])
        {
        $menu = $data['applicationModM'];
        if($i > 1)
        {
?>
            </ul>
            </dd>
<?php
        }
?>
  <dt onclick="javascript:montre('smenu<?php echo $i; ?>');"><?php echo $data['applicationModM']; ?></dt>
			<dd id="smenu<?php echo $i; ?>">
				<ul>
<?php $i++;
        }
?>       
        <li><a href="#"><?php echo $data['nomFiche']; ?></a></li>           
<?php
     
    }    
?>   
         
</dl>

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 40 Messages

23 févr. 2006, 17:04

On va déja terminer le code et verifier sa construction.
:wink:

Voilà c'est nickel en plus avec du texte simple dans mon menu sans cadre etc (cf: css) ca suffit au futur utilisateur :lol: . Car la il m'affiche donc
Schema:


menu1
menu2

et kan je clic sur menu1

menu1
fiche1
fiche2
fiche3
fiche4

menu2

et kan je clic sur menu2 a la suite

menu1
menu2
fiche5

DOnc je pense qu'on peu passer à la suite :D

-Comme je le disai j'aimerai que lorsque l'utilisateur clic sur le nom de la fiche ( sous menu ) alors mon formulaire de saisie se rempli des données lié à cette fiche.

-Le menu sert alors de consultation de fiche 8)

Je dois utiliser donc le php et une page de traitement ainsi que du javascript avec 1 fonction lié au ( sousmenu ) qui represente 1 champ dans ma bdd, avec la propriete .value de chaque élèment ? ou je me trompe ?
:)

Je vais ouvrir 1 autre sujet ca sera plus simple, merci encore :agenouille: