Bonjour,

Je reprends du code dans lequel le PHP, le HTML, le CSS et le Javascript sont mélangés.
Par exemple, extraits de index2.php :
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
<?php
session_start();
 
include("connexion_bdd.php");
include("compteur_connexions.php");
/* du code PHP */
 
// Fonction pour supprimer les accents :
function wd_remove_accents($str, $charset='utf-8')
{
    /* du code PHP */
}
 
/* du code PHP */
 
function redimage($img_src,$dst_w,$dst_h) 
{
    /* du code PHP */
}
 
/* du code PHP */
 
<!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>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title><?=$le_titre;?></title>
	<meta name="description" content="<?=$la_description;?>"/>
	<meta name="keywords" content="<?=$les_keywords;?>"/>
	<meta http-equiv="Content-Language" content="<?=$la_langue?>" />
	<link rel="icon" type="image/x-icon" href="img/favicon.ico" />
	<script type="text/javascript" src="js/jquery-1.4.3.min.js"></script>
  <!-- autres fichiers Javascript inclus -->
	<script type="text/javascript" >
		 function afficheMessage(contenuHTML){
                        /* du code Javascript */
                }
 
                /* autres fonctions Javascript */
 
               function afficherPopupLangues(){
			var posX = 20;
			var posY = 40; 
			$("#popLangues").show().css({ 'z-index': '10', 'right':posX+'px', 'top':posY+'px'});
		}
 
                /* autres fonctions Javascript */
 
	</script>
</head>
<body style="background:#FFFFFF; margin:0px; padding:0px; font-family:Arial, Verdana, Helvetica; color:white;">
	<div id="barre_top" style="height:36px; margin:auto; background-image:url('images/fond_barre_top.png'); background-repeat:repeat-x;">
 
<!-- du code HTML -->
 
<a href="javascript:afficherPopupLangues();" class="menuTOP">
  <?=$trad_language?>
</a>
 
<!-- etc. -->
Dans ce code existant, l'appel à la fonction Javascript afficherPopupLangues() fonctionne.

Voulant organiser un peu mieux le code :
- j'ai transféré le code Javascript dans un fichier ew.js ;
- j'ai isolé l'entête HTML, qui resservira plusieurs fois, dans un fichier entete.phtml ;
- j'ai isolé le début du <body> dans un fichier bandeau_haut.phtml pour les mêmes raisons et l'appel à la fonction afficherPopupLangues() se retrouve ainsi dans bandeau_haut.phtml.

Dans entete.phtml, j'ai bien entendu ajouté cette ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<script type="text/javascript" src="js/ew.js"></script>
En remplacement de index2.php, j'ai un fichier formé ainsi :
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
<?php
 
include_once("includes/inc_session_control.php"); // Contrôle de la session utilisateur
include_once("includes/inc_cookie_control.php"); // Contrôle du cookie
include_once("ewtrad.php");
include_once("includes/inc_common_functions.php");
include("compteur_connexions.php");
 
$msg_type = "";
$msg_a_afficher = "";
 
// Identification du membre à partir du formulaire d'identification
if($_POST["ident"])
{
 
  // du code PHP
 
}
 
// Entête de page HTML
require 'entete.phtml';
?>
<body>
<?php 
require 'bandeau_haut.phtml';
?>
</body>
<?php 
// Bas de page HTML
require 'bas_page.phtml';
?>
Et cette fois, lorsque je clique sur l'option de menu qui appelle la fonction Javascript afficherPopupLangues(), rien ne se passe, si ce n'est cette erreur dans Firebug :
afficherPopupLangues is not defined
Quelqu'un saurait me dire pourquoi ?