Bonjour
J'ai une erreur dans le code avec avec le browser Internet explorer 5.5.
J'ai 3 liste déroulantes liées Lorsque je sélectionne dans la 1e, les données apparaissent dans la2e, mais de la 2e à la 3e rien
'message d'erreur Caractère hexadécimal attendu.' Ligne 186
Avec le browser opéra, ca fonctionne sans erreur
D'avance merci
Sébi
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/helpPlus.asp" -->
<%
Dim rsHW
Dim rsHW_numRows
Set rsHW = Server.CreateObject("ADODB.Recordset")
rsHW.ActiveConnection = MM_helpPlus_STRING
rsHW.Source = "SELECT N°hardware, Name FROM hardware ORDER BY Name ASC"
rsHW.CursorType = 0
rsHW.CursorLocation = 2
rsHW.LockType = 1
rsHW.Open()
rsHW_numRows = 0
%>
<%
Dim rsSoft
Dim rsSoft_numRows
Set rsSoft = Server.CreateObject("ADODB.Recordset")
rsSoft.ActiveConnection = MM_helpPlus_STRING
rsSoft.Source = "SELECT Heure_erreur.n°application,
Heure_erreur.n°Hardware,
application.name FROM application INNER JOIN (partenaire INNER JOIN (heure
INNER JOIN (hardware INNER JOIN (Erreurs INNER JOIN Heure_erreur ON
Erreurs.n°Erreurs = Heure_erreur.n°erreurs) ON hardware.N°hardware =
Heure_erreur.n°Hardware) ON heure.n°heure = Heure_erreur.n°heure) ON
partenaire.N°partenaire = Heure_erreur.n°partenaire) ON
application.n°application = Heure_erreur.n°application GROUP BY
Heure_erreur.n°application, Heure_erreur.n°Hardware, application.name
ORDER
BY application.name; "
rsSoft.CursorType = 0
rsSoft.CursorLocation = 2
rsSoft.LockType = 1
rsSoft.Open()
rsSoft_numRows = 0
%>
<%
Dim rsFehler
Dim rsFehler_numRows
Set rsFehler = Server.CreateObject("ADODB.Recordset")
rsFehler.ActiveConnection = MM_helpPlus_STRING
rsFehler.Source = "SELECT Heure_erreur.n°application,
Heure_erreur.n°erreurs, Erreurs.Name FROM solutions INNER JOIN (partenaire
INNER JOIN (heure INNER JOIN (hardware INNER JOIN ((Erreurs INNER JOIN
avoir_solution ON Erreurs.n°Erreurs = avoir_solution.n°erreurs) INNER JOIN
(application INNER JOIN Heure_erreur ON application.n°application =
Heure_erreur.n°application) ON Erreurs.n°Erreurs = Heure_erreur.n°erreurs)
ON hardware.N°hardware = Heure_erreur.n°Hardware) ON heure.n°heure =
Heure_erreur.n°heure) ON partenaire.N°partenaire =
Heure_erreur.n°partenaire) ON solutions.n°solution =
avoir_solution.n°solution GROUP BY Heure_erreur.n°application,
Heure_erreur.n°erreurs, Erreurs.Name ORDER BY Erreurs.Name;"
rsFehler.CursorType = 0
rsFehler.CursorLocation = 2
rsFehler.LockType = 1
rsFehler.Open()
rsFehler_numRows = 0
%>
<!-- Dynamic Dependent List box Code for *** VBScript *** Server Model //--
>
<script language="JavaScript">
<!--
var arrDynaList = new Array();
var arrDL1 = new Array();
arrDL1[1] = "selectHW"; // Name of parent list box
arrDL1[2] = "form1"; // Name of form containing parent list box
arrDL1[3] = "selectSoft"; // Name of child list box
arrDL1[4] = "form1"; // Name of form containing child list box
arrDL1[5] = arrDynaList; // No need to do anything here
var arrDynaList2 = new Array();
var arrDL2 = new Array();
arrDL2[1] = "selectSoft"; // Name of parent list box
arrDL2[2] = "form1"; // Name of form containing parent list box
arrDL2[3] = "selectFehler"; // Name of child list box
arrDL2[4] = "form1"; // Name of form containing child list box
arrDL2[5] = arrDynaList2;
<%
Dim txtDynaListRelation, txtDynaListLabel, txtDynaListValue, oDynaListRS
txtDynaListRelation = "N°Hardware" ' Name of recordset field relating to
parent
txtDynaListLabel = "name" ' Name of recordset field for child Item
Label
txtDynaListValue = "N°application" ' Name of recordset field for child
Value
Set oDynaListRS = rsSoft ' Name of child list box recordset
Dim varDynaList
varDynaList = -1
Dim varMaxWidth
varMaxWidth = "1"
Dim varCheckGroup
varCheckGroup = oDynaListRS.Fields.Item(txtDynaListRelation).Value
Dim varCheckLength
varCheckLength = 0
Dim varMaxLength
varMaxLength = 0
While (NOT oDynaListRS.EOF)
If (varCheckGroup <> oDynaListRS.Fields.Item(txtDynaListRelation).Value)
Then
If (varCheckLength > varMaxLength) Then
varMaxLength = varCheckLength
End If
varCheckLength = 0
End If
%>
arrDynaList[<%=(varDynaList+1)%>] =
"<%=(oDynaListRS.Fields.Item(txtDynaListRelation).Value)%>"
arrDynaList[<%=(varDynaList+2)%>] =
"<%=(oDynaListRS.Fields.Item(txtDynaListLabel).Value)%>"
arrDynaList[<%=(varDynaList+3)%>] =
"<%=(oDynaListRS.Fields.Item(txtDynaListValue).Value)%>"
<%
If (len(oDynaListRS.Fields.Item(txtDynaListLabel).Value) >
len(varMaxWidth)) Then
varMaxWidth = oDynaListRS.Fields.Item(txtDynaListLabel).Value
End If
varCheckLength = varCheckLength + 1
varDynaList = varDynaList + 3
oDynaListRS.MoveNext()
Wend
If (varCheckLength > varMaxLength) Then
varMaxLength = varCheckLength
End If
%>
//-->
</script>
<script language="JavaScript">
<!--
<%
Dim txtDynaListRelation2, txtDynaListLabel2, txtDynaListValue2,
oDynaListRS2
txtDynaListRelation2 = "N°application" ' Name of recordset field relating
to parent
txtDynaListLabel2 = "Name" ' Name of recordset field for child Item
Label
txtDynaListValue2 = "N°erreurs" ' Name of recordset field for child Value
Set oDynaListRS2 = rsFehler ' Name of child list box recordset
Dim varDynaList2
varDynaList2=-1
While (NOT oDynaListRS2.EOF)
%>
arrDynaList2[<%=(varDynaList2+1)%>] =
"<%=(oDynaListRS2.Fields.Item(txtDynaListRelation2).Value)%>"
arrDynaList2[<%=(varDynaList2+2)%>] =
"<%=(oDynaListRS2.Fields.Item(txtDynaListLabel2).Value)%>"
arrDynaList2[<%=(varDynaList2+3)%>] =
"<%=(oDynaListRS2.Fields.Item(txtDynaListValue2).Value)%>"
<%
varDynaList2 = varDynaList2 + 3
oDynaListRS2.MoveNext
Wend
%>
//-->
</script>
<!-- End of object/array definitions, beginning of generic functions -->
<script language="JavaScript">
<!--
function setDynaList(arrDL){
var oList1 = document.forms[arrDL[2]].elements[arrDL[1]];
var oList2 = document.forms[arrDL[4]].elements[arrDL[3]];
var arrList = arrDL[5];
clearDynaList(oList2);
if (oList1.selectedIndex == -1){
oList1.selectedIndex = 0;
}
populateDynaList(oList2, oList1[oList1.selectedIndex].value, arrList);
return true;
}
function clearDynaList(oList){
for (var i = oList.options.length; i >= 0; i--){
oList.options[i] = null;
}
oList.selectedIndex = -1;
}
function populateDynaList(oList, nIndex, aArray){
for (var i = 0; i < aArray.length; i= i + 3){
if (aArray[i] == nIndex){
oList.options[oList.options.length] = new Option(aArray[i + 1], aArray[i
+ 2]);
}
}
if (oList.options.length == 0){
oList.options[oList.options.length] = new Option("[none available]",0);
}
oList.selectedIndex = 0;
}
//-->
</script>
</head>
<body onload="setDynaList(arrDL1);setDynaList(arrDL2)">
<form name="form1" method="post" action="">
<p>
<select name="selectHW" size="5" id="selectHW"
onChange="setDynaList(arrDL1);setDynaList(arrDL2)">
<%
While (NOT rsHW.EOF)
%>
<option
value="<%=(rsHW.Fields.Item("N°hardware").Value)%>"><%=(rsHW.Fields.Item("N
a
me").Value)%></option>
<%
rsHW.MoveNext()
Wend
If (rsHW.CursorType > 0) Then
rsHW.MoveFirst
Else
rsHW.Requery
End If
%>
</select>
grandparent </p>
<p>
<select name="selectSoft" size="5" id="selectSoft"
onChange="setDynaList(arrDL2)">
</select>
parent</p>
<p>
<select name="selectFehler" size="5" id="selectFehler">
</select>
child </p>
</form>
</body>
</html>
<%
rsSoft.Close()
Set rsSoft = Nothing
%>
<%
rsFehler.Close()
Set rsFehler = Nothing
%>
<%
rsHW.Close()
Set rsHW = Nothing
%>