IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[PHP-JS] Javascript généré à partir de PHP


Sujet :

JavaScript

  1. #1
    Invité
    Invité(e)
    Par défaut [PHP-JS] Javascript généré à partir de PHP
    Bonjour !

    On m'a dit de poster ici alors voilà.

    J'ai généré du code javascript avec PHP comme ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?php
                    //Ouverture du menu courant
                    $obj_page_menu = new pages();
                    $res_page_menu = $obj_page_menu->liste(null,null,null,null,null,$url_pk_deroule,null,"pos_page ASC");
                    
                    $tmp_menu = 1 ;
                    
                    while($page_menu = $obj_page_menu->pageSuivante($res_page_menu))
                    {
                            if($page_menu->type_page == "R")
                            {                               
                                    $res_menu_rubriques_p = $obj_page_menu->liste(null,null,null,null,null,$page_menu->pk_page);
                                    while ($menu_rubriques_p = $obj_page_menu->pageSuivante($res_menu_rubriques_p))
                                    {
                                            if($menu_rubriques_p->pk_page == $url_pk)
                                            {
                                                    echo ' <script type="text/javascript"> ';
                                                    echo " <!-- ";
                                                    echo " montre('smenu".$tmp_menu."'); ";
                                                    echo " //--> ";
                                                    echo " </script> ";
                                            }
                                            $tmp_menu ++;
                                    }
                            }
                    }
                    ?>
    Ensuite dans ma page, si je regarde la code source, j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript">  <!--  montre('smenu4');  //-->  </script>
    Seulement, à aucun moment la fonction montre() n'affiche le smenu4...

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Le code généré est-il avant l'instantiation de l'élément smenu4 dans la page HTML ?

    Si oui, alors tu essaies d'afficher un élément qui n'existe pas encore et tu as une erreur Javascript "smenu4 has no properties".

  3. #3
    Invité
    Invité(e)
    Par défaut
    Non non, mon smenu4 est bien créée avant. Je me suis trompé avant mais le problème n'était pas là...

  4. #4
    Invité
    Invité(e)
    Par défaut
    J'ai essayé de mettre un alert dans mon script javascript mais apparemment celui-ci n'est pas lu...

    Quelqu'un aurait une explication ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'ai fait un nouvel essai en mettant ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ?>
    	<script type="text/javascript">
    	<!--
    	montre("smenu<?php echo $tmp_menu;?>");
    	alert("c");
    	//-->
    	</script>
    <?php
    Le code est bien lu, j'ai l'alert qui s'affiche et le menu ouvert mais quand je clique sur le OK de l'alert, mon menu se referme et je ne sais pas pourquoi...

    La fonction montre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <script type="text/javascript">
    	<!--
    	window.onload=montre;
    	function montre(id) {
    	var d = document.getElementById(id);
    	for (var i = 1; i<=20; i++) {
    		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
    	}
    	if (d) {d.style.display='block';}
    	}
    	//-->
    </script>

  6. #6
    Invité
    Invité(e)
    Par défaut
    En fait c'est trop bizzare.

    Au chargement de ma page, il entre une fois dans la fonction montre grâce à window.onload = montre;

    Normal jusque là. Il ferme les menus

    Ensuite si un menu doit être ouvert il va entrer dans la fonctione montre et l'ouvrir. Jusque là je comprends toujours.

    Par contre, pour une raison complètement indépendante de ma volonté, après avoir ouvert le menu, il retourne encore une fois dans la fonction montre (je ne sais pas pourquoi) et referme tous les menus....

    hum hum....

  7. #7
    Invité
    Invité(e)
    Par défaut
    Voilà j'ai trouvé la solution !!!

    Alors pour mon javascript voilà ce que j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <script type="text/javascript">
    		<!--
    		function montre_menu(id) {
    		var d = document.getElementById(id);
    			for (var i = 1; i<=15; i++)
    			{
    				if (document.getElementById('rub'+i))
    				{
    					document.getElementById('rub'+i).style.display='none';
    				}
    			}
    			if (d)
    			{
    				d.style.display='block';
    			}
    		}
    		//-->
    	</script>
    Donc j'ai enlevé l'appel qui fermait toutes les boties à l'ouverture et je les compensé en désactivant mes boites à leur création :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <?php
    		//Construction du menu
    		$obj_page_menu = new pages();
    		$res_page_menu = $obj_page_menu->liste(null,null,null,null,null,$url_pk_deroule,null,"pos_page ASC");
     
    		$tmp_menu = 1 ;
     
    		while($page_menu = $obj_page_menu->pageSuivante($res_page_menu))
    		{
    			if($page_menu->type_page == "A")
    			{
    				echo "<dt onclick='javascript:montre_menu(\"rub".$tmp_menu."\");'><a href='".HOST."index.php'>".stripslashes($page_menu->titre_page)."</a></dt>";
    				$tmp_menu ++;
    			}
    			if($page_menu->type_page == "P" && $page_menu->fk_parent_page == 0)
    			{
    				echo "<dt onclick='javascript:montre_menu(\"rub".$tmp_menu."\");'><a href='".HOST."index.php?cat=pages&page=lis_page&pk=".$page_menu->pk_page."'>".stripslashes($page_menu->titre_page)."</a></dt>";
    				$tmp_menu ++;
    			}
    			if($page_menu->type_page == "R")
    			{
    				echo "<dt onclick='javascript:montre_menu(\"rub".$tmp_menu."\");'><a href='#'>".stripslashes($page_menu->titre_page)."";
    				if ($_SESSION['type'] == "A")
    				{
    					echo "&nbsp;&nbsp;<img src='".HOST."fichiers/boutons/btn_edit.gif' border='0' onclick='location.href=\"".HOST."index.php?cat=pages&amp;page=edi_page&amp;pk=$page_menu->pk_page&amp;type=R&amp;pk_ong=".$_GET['pk_ong']."\"' />";
    				}
    				echo "</a></dt><dd id=\"rub".$tmp_menu."\" style='display:none;'><ul>";
     
    				$res_menu_rubriques_p = $obj_page_menu->liste(null,null,null,null,null,$page_menu->pk_page);
    				while ($menu_rubriques_p = $obj_page_menu->pageSuivante($res_menu_rubriques_p))
    				{
    					echo "<li><a href='".HOST."index.php?cat=pages&page=lis_page&pk=".$menu_rubriques_p->pk_page."'>".$menu_rubriques_p->titre_page."</a></li>";
    					if($menu_rubriques_p->pk_page == $url_pk)
    					{
    						?>
    							<script type="text/javascript">
    								<!--
    									montre_menu("rub<?php echo $tmp_menu;?>");
    								//-->
    							</script>
    						<?php
                                            }
                                    }
                                    echo "</ul></dd>";
                                    $tmp_menu ++;
                            }
                    }
                    ?>
    Voilà tout mon menu !!!

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] Conversion fonction de temps PHP vers javascript
    Par Flynt dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/04/2008, 17h46
  2. [PHP-JS] Gestion de select avec php et javascript
    Par omdafer dans le forum Langage
    Réponses: 4
    Dernier message: 24/03/2008, 12h45
  3. [PHP-JS] somme de 2 variables php en javascript
    Par bluzy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/12/2006, 14h34
  4. [PHP-JS] passer des paramétre de php a javascript
    Par alexmorel dans le forum Langage
    Réponses: 7
    Dernier message: 08/10/2006, 22h36
  5. [PHP-JS] comment lancer une fonction javascript a partir de php
    Par amika dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/06/2005, 19h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo