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

Bibliothèques et frameworks PHP Discussion :

[DOM] Non chargement d'une page récemment passée de .htm à .php


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Points : 84
    Points
    84
    Par défaut [DOM] Non chargement d'une page récemment passée de .htm à .php
    Bonjour,

    Un truc tout bête : je souhaite introduire des parties de mon code dans différents fichiers php afin de pouvoir les appeller dans mon fichier principal. En cas de modification d'une des parties, je n'ai pas tout à remodifier.

    J'ai cru comprendre que les 2 fichier devait être en php : le conteneur et le contenant !

    Je viens de changer uniquement l'extension de mon fichier "default.htm" en "default.php" juste pour le test. Au chargement il m'affiche :

    La page XML ne peut pas être affichée
    Impossible d'afficher l'entrée XML en utilisant la feuille de style XSL. Corrigez l'erreur, puis cliquez sur le bouton Actualiser ou réessayez ultérieurement.

    ----------------------------------------------------------------------

    La balise de fin form ne correspond pas à la balise de début img. Erreur de traitement de la ressource http://localhost/mgc...

    </form>
    ------^
    et le seul form que j'ai est le suivant et quand je l'enlève, ça ne change rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div id="browser">
       	<form method="POST" action="">
    		<input type="image" name="search" id="search1" src="browser_button1.png" class="button"/>
    		<input type="image" name="search" id="search2" src="browser_button2.png" class="button"/>
    		<img src="Design/Images/Frame/browser_textbox.png"/>
    		<input type="text" name="search_field" id="search_field" value="Rechercher" class="search_field" onfocus="ActiveTextBox('search_field','Rechercher');" onblur="ResetTextBox('search_field','Rechercher');"/>
    		<ul><li><a href="#"></a></li></ul>
       	</form>
    </div>
    Merci d'avance

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Je pense qu'il s'agit d'une problème de type de contenu renvoyé par le serveur.

    Que te donne le serveur dans l'en-tête http Content-type ?

    Si tu sais pas comment observer ça, installe FireFox puis l'extension FireBug
    et regarde dans l'onglet Net

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Points : 84
    Points
    84
    Par défaut
    Peux-tu m'en dire déjà un peu plus sur :

    Je pense qu'il s'agit d'une problème de type de contenu renvoyé par le serveur
    Désolé, je ne peux pas installer mozilla firefox... N'y a-til pas une autre manière de procéder pour récupérer le content-type ?

    lorsque je suis sur le localhost, est-ce que je peux appeller directement un fichier .php ! Lorsque je le fais maintenant, il m'affiche le code php

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Qu'est-ce qui t'empêche donc d'installer FF ? :-)

    Tu peux repérer les entêtes serveur avec un sniffeur sinon.

    Il se peut aussi que ton serveur soit mal configuré

    Peux-tu en dire un peu plus sur ton environnement de travail ? le
    serveur ? as-tu un url à donner pour tester ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Points : 84
    Points
    84
    Par défaut
    Le serveur est celui de la boîte dans laquelle j'effectue mon stage et je ne peux pas y toucher (disons cela) ! FF ne s'installe pas correctement sur les ordinateurs du boulot, je vais le faire sur mon PC perso et je te dis demain au aurore !

    Merci pour ton aide

    @ demain

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Points : 84
    Points
    84
    Par défaut
    Bon j'ai installé FireBug et easy php sur mon ordinateur perso.

    J'ai cliqué sur "Inspect" en sélectionnant "All" et j'ai choisi l'onglet "Net" ! Une liste de fichier s'affiche... on peut constater une erreur 404 pour 2 fichiers que je n'ai pas encore créé (2 images).

    Ce qui est étonnant, c'est que la page se charge très bien sous mozilla (avec easyphp), très bien sous internet explorer (avec easy php) mais pas sous internet explorer (avec IIS) !!

    Que faire : travailler sous Easyphp ? J'aimerais bien continuer sous IIS !!

    Je suppose que EasyPHP suppose "appel BDD en PHP" et IIS suppose "appel BDD en ASP" ?

    Merci

  7. #7
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Ok, il y a peut-être un problème de config sur le serveur IIS, php est bien installé dessus ? parfois il faut des fichiers avec extension du genre php3, php4, php5 au lieu de php.

    Test déjà avec une page php toute simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
      echo "Hello";
    ?>
    Si ça t'affiche toujours ton bug XML, c'est peut-être que php est pas
    interprété et qu'il pense que <? est un début de prologue XML, dans
    ce cas essaie ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <html>
     <head><title>test</title></head>
     <body>
     <h1>Un titre</h1>
     <?php
       echo "coucou";
     ?>
     </body>
    </html>
    si tu vois une page avec Un titre et rien d'autre c'est probablement que
    php est mal installé sur le serveur IIS

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Points : 84
    Points
    84
    Par défaut
    Bon là c'est le drame :

    En fait, l'introduction de données dans la BDD marchait très bien... vas savoir pourquoi, j'ai voulu déconnecter IIS ! Maintenant une introduction de données dans la BDD ne marche plus ! Je crois que c'est le summum des problèmes ! Je ne sais plus me connecter !

    Sinon j'ai essayé d'ouvrir un fichier PHP comme dans ton 1er exemple... il me demande de choisir le programme pour l'oucrir (je crois que j'ai vraiment mis le bordel en en me déconnectant de IIS) parce qu'avant j'ai souvenir que ça marchait !!

    Pour le 2ème exemple, il me demande encore d'ouvrir le fichier avec un programme.

    help pour IIS !!!!!

  9. #9
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    T'as peut-être fermé le serveur Apache pour que ça te propose le téléchargement de fichier PHP.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Points : 84
    Points
    84
    Par défaut
    Apache c'est sous IIS ??
    Tu saurais me dire comment le rouvrir ??

    Pourtant lorsque je fais localhost, il m'ouvre IIS avec :
    "Votre service Web est maintenant en service"

    En parlant de "mettre mle bordel", j'ai oublié de préciser que j'ai entre temps installé/désinstallé EasyPHP... ce qui ne doit pas aider !!

    Dans Outils d'aministration / Service Internet (IIS)
    Lorsque je clique sur Service Internet (IIS) il ne m'affiche aucun "état" dans la fenêtre de droite...est-ce bien normal ??

    Pour info, j'ai rebasculer la discussion vers cette adresse située sur le forum ASP :lien forum ASP - IIS

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Points : 84
    Points
    84
    Par défaut
    Pour en revenir au problème du PHP, il semble que l'extension php n'était pas configurer dans IIS...

    Maintenant, il me renvoi l'erreur :

    Parse error: syntax error, unexpected T_STRING in C:\Inetpub\wwwroot\mgc_deplacement_charges_lourdes\projet\default.php on line 1
    lorsque je charge ma page !

    Rappel : l'objectif est d'avoir de fichier php : conteneur / contenant pour insérer du texte html de mes différentes parties (header, left-menu, footer)
    Mon fichier default.php ne contient aucun <?php [...] ?>

    Quelqu'un aurait-il une idée de la provenance de ce problème ??

    Merci

  12. #12
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Une erreur de syntaxe apparemment. Fait une vérification dans le fichier sorti par l'erreur.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Points : 84
    Points
    84
    Par défaut
    Tu peux préciser ce que tu entends par vérification ! Je suis un débutant en php ! Est-ce que tu veux dire phpinfo() ??

  14. #14
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Qu'est-ce qu'il y a dans ton fichier default.php ?

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Points : 84
    Points
    84
    Par défaut
    Il y a ma page html originale qui ne contient aucune ligne de code PHP

    avec une entête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Points : 84
    Points
    84
    Par défaut
    Apparemment il n'aime pas ma balise <?xml [...] ?>

    Je l'enlève et on a l'impression que le css en prend un coup !! Un élément "header" de mon entête qui est décalé et mon menu dynamique qui s'affiche de nouveau sous forme de liste !!!

    reHELP !!

    Quelles balises (entête) faut-il mettre pour transformer un fichier html en php ?? (tant qu'à faire - donner celles qu'ils faut impérativement mettre en HTML et celle qu'il faut impérativement mettre en PHP)

    Ce sera ma derrnière question sur ce post !!

    Merci beaucoup

  17. #17
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    <? représente le marqueur (version courte) d'ouverture de php

    normalement c'est <?php mais beaucoup de serveurs supportent <?

    Donc c'est ça qui produit ton erreur.

    tu peux contourner le problème en produisant le prologue xml depuis
    php, ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
      // éventuellement ici: header('Content-type: ...'); pour spécifier le content type approprié
      echo '<'.'?xml version="1.0" encoding="utf-8" ?'.'>'; 
    ?>

  18. #18
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Ou changer une des directives de ton php.ini en la modifiant comme telle :

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Points : 84
    Points
    84
    Par défaut
    Merci pour vos réponse !

    Pour

    Pour ceux qui ne suarait pas à quoi cela correspond :

    Définit si les balises courtes d'ouverture de PHP ( <? ?> ) sont autorisées ou non. Si vous voulez utiliser PHP avec XML, vous devez désactiver cette option de configuration pour pouvoir utiliser <?xml ?> . Sinon, vous pouvez l'écrire à l'aide de PHP, par exemple : <?php echo '<?xml version="1.0"'; ?> . Si cette option est désactivée, vous devez utiliser la version longue d'ouverture de balises PHP ( <?php ?> ).

    Note
    Cette directive affecte également l'utilisation de <?= , qui est identique à <? echo . L'utilisation de cette écriture nécessite que l'option short_open_tag soit activée. to be on.
    C'est étrange parce que cette ligne était déjà "OFF" ??!!

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Points : 84
    Points
    84
    Par défaut
    Salut,

    Alors pour ce qui est du décalage en cascade des différents éléments à inclure, cela vient du fait que j'avais toujours laissé "2 sauts de ligne" en entête de mes fichiers contenant le code de chacun des éléments. Je ne pensais pas que ça influerait...
    En les supprimant, tout est revenu dans l'ordre ! (YES !)

    Cependant, "un irréductible problème résiste encore est toujours à l'envahisseur...". Le fait que mon menu dynamique ne s'affiche plus correctement : sous "default.htm" il marchait parfaitement bien. Cela donne l'impression que le list-style n'est pas correctement appliqué.

    Je post donc mon menu, ça surement des heureux...


    Fichier html :

    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
    <div id="left_menu">
    	<ul id="menu">
       		<li><a href="#menu1">MENU 1</a>
           		<ul>
               		<li><a href="default.htm">ELEM 1</a> </li>
               		<li><a href="#">ELEM 2</a> </li>
               		<li><a href="#">ELEM 3</a> </li>
           		</ul>
       		</li>
       		<li><a href="#menu2" >MENU 2</a>	
           		<ul>
               		<li><a href="#">ELEM 1</a></li>
               		<li><a href="#">ELEM 2</a></li>
               		<li><a href="#">ELEM 3</a></li>
           		</ul>
       		</li>
       		<li><a href="#menu3" >MENU 3</a>	
           		<ul>
               		<li><a href="#">ELEM 1</a></li>
               		<li><a href="#">ELEM 2</a></li>
               		<li><a href="#">ELEM 3</a></li>
           		</ul>
       		</li>
    	</ul>
     
    <script type="text/javascript"> initMenu(); </script>
    </div>

    Fichier CSS correspondant :

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    /* Feuille CSS de "Left_Menu" */
     
     
    /* Positionnement et Bordures d'un élément "menu" */
    #left_menu .menu {
    	padding: 0px;
    	margin: 0px 0px 0px 9px;
    	top: 0px;
    	z-index: 10;
     
    	border-top-style: solid;
    	border-right-style: solid;
    	border-left-style: solid;
    	border-top-width: 1px;
    	border-right-width: 1px;
    	border-left-width: 1px;
    	border-top-color: #000000;
    	border-bottom-color: #000000;
    	border-left-color: #000000;
     
    	/* Patch pour fixer une élément de la page sous IE6 */ 
    	position : expression("absolute"); 
    	width : expression("180px");
    	top: expression( ( 228 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
    	left: expression( ( 'center' + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
    }
     
     
     
     
    /* Positionnement et Bordures d'un élément "sous-menu" */
    #left_menu .menu ul {
    	visibility: hidden;
    	padding: 0px;
    	margin: -1px 0px 0px 9px;
    	position: absolute;
    	width: 180px;
     
    	border-top-style: solid;
    	border-right-style: solid;
    	border-left-style: solid;
    	border-top-width: 1px;
    	border-right-width: 1px;
    	border-left-width: 1px;
    	border-top-color: #000000;
    	border-bottom-color: #000000;
    	border-left-color: #000000;
     
    }
     
     
     
    /* Positionnement et Bordures d'un élément "sous-sous-menu" */
    /*
    #left_menu .menu li ul {
        visibility: hidden;
        margin-left: 185px;
        margin-top: -24px;
        }
    */
     
     
    /* Apparence et Taille du contenu d'un élément "menu" */
    #left_menu .menu li a {
    	background-color: #4D4D4D;
    	margin: 0;
    	padding: 3px 0px 3px 0px;
     
    	font-family: Arial;
    	color: #FFFFFF;
    	font-size: 12px;
    	font-weight: bold;
    	text-decoration: none;
    	text-align: center;
    	vertical-align: middle;
     
    	width: 180px;
    	display: block;
    	float: left;
        list-style: none;
     
    	border-bottom-style: solid;
    	border-bottom-width: 1px;
    	border-bottom-color: #000000;
    }
     
     
    /* Apparence et Taille du contenu d'un élément "sous-menu" */
    #left_menu .menu ul li a {
    	background-color: #4D4D4D;
    	margin: 0;
    	padding: 3px 0px 3px 0px;
     
    	font-family: Arial;
    	color: #FFFFFF;
    	font-size: 12px;
    	font-weight: bold;
    	text-decoration: none;
    	text-align: center;
    	vertical-align: middle;
     
    	width: 180px;
    	display: block;
    	float: left;
        list-style: none;
    }
     
     
     
    /* Apparence de l'élément lorsque la souris est positionnée dessus */
    #left_menu .menu a:hover {
    	background-color: #AE0000;
    }
     
     
     
    #left_menu .menu span {
        display: none;
        }
     
     
     
    #left_menu .menu li {
        width: 180px;
        display: block;    
        float: left;
        list-style: none;
        }
     
     
     
    /* IE PC selector */
    * html .menu li {
        display:inline; /* solve a IE PC list bug */
        float:none; /* solve a IE5 clav nav bug */
        }
     
    #left_menu a.linkOver{
    	background-color: #AE0000;
    }

    Fichier Javascript de détection du browser "browserdetect.js" :

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    // Browser Detect Lite  v2.1.4
    //  http://www.dithered.com/javascript/browser_detect/index.html
    // modified by Chris Nott (chris@NOSPAMdithered.com - remove NOSPAM)
     
     
    function BrowserDetectLite() {
       var ua = navigator.userAgent.toLowerCase(); 
     
       // browser name
       this.isGecko     = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1);
       this.isMozilla   = (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length);
       this.isNS        = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );
       this.isIE        = ( (ua.indexOf('msie') != -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1) ); 
       this.isSafari    = (ua.indexOf('safari') != - 1);
       this.isOpera     = (ua.indexOf('opera') != -1); 
       this.isKonqueror = (ua.indexOf('konqueror') != -1 && !this.isSafari); 
       this.isIcab      = (ua.indexOf('icab') != -1); 
       this.isAol       = (ua.indexOf('aol') != -1); 
     
       // spoofing and compatible browsers
       this.isIECompatible = ( (ua.indexOf('msie') != -1) && !this.isIE);
       this.isNSCompatible = ( (ua.indexOf('mozilla') != -1) && !this.isNS && !this.isMozilla);
     
       // browser version
       this.versionMinor = parseFloat(navigator.appVersion); 
     
       // correct version number
       if (this.isNS && this.isGecko) {
          this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('/') + 1 ) );
       }
       else if (this.isIE && this.versionMinor >= 4) {
          this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
       }
       else if (this.isMozilla) {
          this.versionMinor = parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) );
       }
       else if (this.isSafari) {
          this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('/') + 1 ) );
       }
       else if (this.isOpera) {
          if (ua.indexOf('opera/') != -1) {
             this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera/') + 6 ) );
          }
          else {
             this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera ') + 6 ) );
          }
       }
       else if (this.isKonqueror) {
          this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) );
       }
       else if (this.isIcab) {
          if (ua.indexOf('icab/') != -1) {
             this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab/') + 6 ) );
          }
          else {
             this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab ') + 6 ) );
          }
       }
     
       this.versionMajor = parseInt(this.versionMinor); 
       this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 );
     
       // dom support
       this.isDOM1 = (document.getElementById);
       this.isDOM2Event = (document.addEventListener && document.removeEventListener);
     
       // css compatibility mode
       this.mode = document.compatMode ? document.compatMode : 'BackCompat';
     
       // platform
       this.isWin   = (ua.indexOf('win') != -1);
       this.isWin32 = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1) );
       this.isMac   = (ua.indexOf('mac') != -1);
       this.isUnix  = (ua.indexOf('unix') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1)
       this.isLinux = (ua.indexOf('linux') != -1);
     
       // specific browser shortcuts
       this.isNS4x = (this.isNS && this.versionMajor == 4);
       this.isNS40x = (this.isNS4x && this.versionMinor < 4.5);
       this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7);
       this.isNS4up = (this.isNS && this.versionMinor >= 4);
       this.isNS6x = (this.isNS && this.versionMajor == 6);
       this.isNS6up = (this.isNS && this.versionMajor >= 6);
       this.isNS7x = (this.isNS && this.versionMajor == 7);
       this.isNS7up = (this.isNS && this.versionMajor >= 7);
     
       this.isIE4x = (this.isIE && this.versionMajor == 4);
       this.isIE4up = (this.isIE && this.versionMajor >= 4);
       this.isIE5x = (this.isIE && this.versionMajor == 5);
       this.isIE55 = (this.isIE && this.versionMinor == 5.5);
       this.isIE5up = (this.isIE && this.versionMajor >= 5);
       this.isIE6x = (this.isIE && this.versionMajor == 6);
       this.isIE6up = (this.isIE && this.versionMajor >= 6);
     
       this.isIE4xMac = (this.isIE4x && this.isMac);
    }
    var browser = new BrowserDetectLite();

    Fichier de création du menu "menu.js" :

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    // the timeout for the menu
    var timeout = 1000;
     
    // not very clean but simple
    // the function can be run in the HTML for faster display
    // window.onload=initMenu;
     
    // create timeout variables for list item
    // it's to avoid some warning with IE
    for( var i = 0; i < 100; i++ )
    {
        eval("var timeoutli" + i + " = false;");
    }
     
    // this fonction apply the CSS style and the event
    function initMenu()
    {
        // a test to avoid some browser like IE4, Opera 6, and IE Mac
        if ( browser.isDOM1 
        && !( browser.isMac && browser.isIE ) 
        && !( browser.isOpera && browser.versionMajor < 7 )
        && !( browser.isIE && browser.versionMajor < 5 ) )
        {
            // get some element
            var menu = document.getElementById('menu'); // the root element
            var lis = menu.getElementsByTagName('li'); // all the li
     
            // change the class name of the menu, 
            // it's usefull for compatibility with old browser
            menu.className='menu';
     
            // i am searching for ul element in li element
            for ( var i=0; i<lis.length; i++ )
            {
                // is there a ul element ?
                if ( lis.item(i).getElementsByTagName('ul').length > 0 )
                {        
                    // improve IE key navigation
                    if ( browser.isIE )
                    {
                        addAnEvent(lis.item(i),'keyup',show);
                    }
                    // link events to list item
                    addAnEvent(lis.item(i),'mouseover',show);
                    addAnEvent(lis.item(i),'mouseout',timeoutHide);
                    addAnEvent(lis.item(i),'blur',timeoutHide);
                    addAnEvent(lis.item(i),'focus',show);
     
                    // add an id to list item
                    lis.item(i).setAttribute( 'id', "li"+i );
                }
            }
        }
    }
     
    function addAnEvent( target, eventName, functionName )
    {
        // apply the method to IE
        if ( browser.isIE )
        {
            //attachEvent dont work properly with this
            eval('target.on'+eventName+'=functionName');
        }
        // apply the method to DOM compliant browsers
        else
        {
            target.addEventListener( eventName , functionName , true ); // true is important for Opera7
        }
    }
     
    // hide the first ul element of the current element
    function timeoutHide()
    {
        // start the timeout
        eval( "timeout" + this.id + " = window.setTimeout('hideUlUnder( \"" + this.id + "\" )', " + timeout + " );");
    }
     
    // hide the ul elements under the element identified by id
    function hideUlUnder( id )
    {   
        document.getElementById(id).getElementsByTagName('ul')[0].style['visibility'] = 'hidden';
    }
     
    // show the first ul element found under this element
    function show()
    {
        // show the sub menu
        this.getElementsByTagName('ul')[0].style['visibility'] = 'visible';
        var currentNode=this;
        while(currentNode)
        {
                if( currentNode.nodeName=='LI')
                {
                    currentNode.getElementsByTagName('a')[0].className = 'linkOver';
                }
                currentNode=currentNode.parentNode;
        }
        // clear the timeout
        eval ( "clearTimeout( timeout"+ this.id +");" );
        hideAllOthersUls( this );
    }
     
    // hide all ul on the same level of  this list item
    function hideAllOthersUls( currentLi )
    {
        var lis = currentLi.parentNode;
        for ( var i=0; i<lis.childNodes.length; i++ )
        {
            if ( lis.childNodes.nodeName=='LI' && lis.childNodes[i].id != currentLi.id )
            {
                hideUlUnderLi( lis.childNodes[i] );
            }
        }
    }
     
    // hide all the ul wich are in the li element
    function hideUlUnderLi( li )
    {
        var as = li.getElementsByTagName('a');
        for ( var i=0; i<as.length; i++ )
        {
            as.item(i).className="";
        }
        var uls = li.getElementsByTagName('ul');
        for ( var i=0; i<uls.length; i++ )
        {
            uls.item(i).style['visibility'] = 'hidden';
        }
    }

    Si vous avez la solution n'hésitez surtout pas. Je rappel que le problème apparait en php et pas en html

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. DOM Mettre display=none au chargement d'une page
    Par RicardoBxl dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 12/02/2013, 09h11
  2. [DOM] Sous-menu ouvert au chargement d'une page php
    Par citronized dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/01/2009, 15h58
  3. [DOM] innerHTML au chargement d'une page
    Par mimagyc dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/10/2008, 18h49
  4. Chargement d'une page
    Par krfa1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/05/2005, 09h53
  5. [JSP] pbl chargement d'une page JSP
    Par Shiryu44 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 30/03/2005, 10h49

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