Bonjour,

J'utilise un script Javascript pour lier deux listes déroulantes entre via une BD. Il marche trés bien, mais la à l'éxécution sous Internet Explorer il m'indique des lignes à debugguer. J'ai regarde la ligne avec Afficher la source, mais je ne comprends pas trop où est l'erreur.

Juste en dessous de la première erreur ligne 93 : Constante chaine non terminée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Undefined offset:  1 in <b>c:\program files\easyphp1-8\www\nom_ent.php</b> on line <b>50</b><br />
";
Voici mon script avec les lignes 50 (et 56) en rouge :
<SCRIPT LANGUAGE="JavaScript">
/*Cette fonction permet d'afficher 2 listes liées l'une à l'autre par une requête Mysql
La 2ème liste est mise à jour selon ce qui a été sélectionné dans la 1ère*/
function AffListe2(code)
{
//nb d'éléments de la 2ème liste
lg = document.entreprise.nom_ent.length;
for (i = lg - 1; i >= 0; i--)
{
//au départ tous les éléments de la 2ème liste sont vides
document.entreprise.nom_ent.options[i] = null;
}

<?php
//Sélection dans la table SITES
$sql1 = "SELECT DISTINCT categorie FROM utilisateurs WHERE categorie='Partenaire' OR categorie='Adhérent'";
$resultat = mysql_query($sql1);
//initialisation des variables
$option_max= "" ;
$max_lignes = 0 ;


//Tant que la sélection dans SITES ramène des tuples
while ($enr = mysql_fetch_array($resultat))
{
//On recherche les éléments de SERVICES ayant pour "mère" un enregistrement dans SITES
$sql="SELECT login FROM utilisateurs WHERE categorie='".$enr[0]."' ORDER BY login";
//$enr[0]=CodeSite de la 1ère requête*/

$resultat2 = mysql_query($sql); //resultat correspondant au site choisi

echo " if (document.entreprise.situation.value == '";
echo $enr[0]."') {\n";
echo " document.entreprise.nom_ent.length = ";
echo (mysql_num_rows($resultat2)).";\n";
//la longueur de la liste des services=nb de lignes retournées par le select
$cpt = 0; //on met un compteur à 0
echo " document.entreprise.nom_ent.options[".$cpt."].value = '';\n";
//texte affiché dans la liste = LibelleService (enr2[1])
echo " document.entreprise.nom_ent.options[".$cpt."].text = \"Aucun\";\n";
$cpt++;

while ($enr2 = mysql_fetch_array($resultat2)) //tant qu'il y a des lignes retournées par la requête de sélection des services
{
//valeur de l'option dans la liste = CodeService (enr2[0])
echo " document.entreprise.nom_ent.options[".$cpt."].value = '";
echo $enr2[0]."';\n";
//texte affiché dans la liste = LibelleService (enr2[1])
echo " document.entreprise.nom_ent.options[".$cpt."].text = \"";
echo $enr2[1]."\";\n";

echo " if (code == '".$enr2[0]."') document.forms[1].nom_ent.options[";
echo $cpt."].selected = true;\n";
$cpt++;
if ($cpt > $max_lignes) $max_lignes = $cpt;
if (strlen($enr2[1]) > strlen($option_max)) $option_max = $enr2[1];
}
echo " }\n"; //fin du if (document.forms[0].lstsite.value == 'enr')
}//fin du while $enr
?>
}
</SCRIPT>
Au cas ou je vous mets la partie du formulaire qui devrait être gérer par le script
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
<form name="entreprise" method="post" onSubmit="return verif_entreprise()" action="">
 
<?	
	  if ($rech_cat) 
      { 
         echo ("<select name=\"situation\" onChange='AffListe2(-1)'> <br/>") ; 
		 echo ("<option value=''>Situation</option>");
         while ($tab=mysql_fetch_object($rech_cat)) 
         { 
            echo ("<option value=".$tab->categorie.">".$tab->categorie."</option>"); 
         } 
         echo ("</select><br/>"); 
         mysql_free_result($rech_cat); 
      }
?>
		Nom<br/>
		<select name="nom_ent" >
			<option value=''>Listes des noms</option>
		</select>
Merci pour votre aide