[menu javascript//php/mysql ?]

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [menu javascript//php/mysql ?]

par vincedjs » 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:

par Truc » 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>

par vincedjs » 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>

par vincedjs » 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 ?

par Truc » 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

par vincedjs » 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:

par Truc » 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>

par vincedjs » 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

par vincedjs » 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> 

par Truc » 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'])

par vincedjs » 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 :)

par Truc » 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 ?

par vincedjs » 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.

par Truc » 23 févr. 2006, 15:11

c'est le code source ça :shock:

On voit tout le code php c'est pas normal.

Est-ce que tu effectu des tests avec une bases de données bien remplie au niveau des menus et sous menus ?
Menu1
sous menu 1.1
sous menu 1.2
Menu2
sous menu 2.1
Menu3
sous menu 3.1
sous menu 3.2
sous menu 3.3
parce que la il n'y a apparemment qu'un sous menu pour tous les menus (5) pas évident de tester un code comme ça.
:?


il y a eu un oublis de ma part, dans l'affectation des menus:
$menu= ""; // ne pas oublier de remettre cette ligne
$i=1;

while($data = mysql_fetch_array($requete))
    {
    if($menu != $data['applicationModM'])
        {      
        $menu = $data['applicationModM']; // ligne ajoutée ********
        if($i != 1)
            {         
?> 

par vincedjs » 23 févr. 2006, 14:58

et dans le code source rien non plus ?!
sisi :idea:
<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>           
 
            </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>           
 
            </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>           
 
            </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>           
 
            </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>
ps:avec 1 echo de $i j'ai "6"

et quand j effectue la requete dans phpmyadmin j en es 5 d'enregistrements