Script JavaScript non fonctionnel

Fermé
wagner51 - 19 mars 2003 à 10:32
wagner51 Messages postés 10 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 20 mars 2003 - 20 mars 2003 à 16:40
Bonjour à tous,
Je dois mettre à jour un site web en PHP/JavaScript. Malheureusement, la partie Javascript ne fonctionne pas du tout, et j'ai beau la modifier, rien n'y fait. C'est un script de liste automatique (le choix dans la première liste modifie les <OPTION> de la seconde liste). Je travaille sous Linux Mandrake 7 + Netscape 7.02. Ci-joint le code source, abbrégé par endroits -- ceux qui ne veulent pas m'aider ne sont bien sûr pas obligés de le lire ;-)
Merci pour votre aide...

<SCRIPT language="JavaScript">
var LSUArray = new Array(
"Aeropyrum_pernix_AB019552",
"Aeropyrum_pernix_AB019553",
"Aeropyrum_pernix_AB019554")

var SSUArray = new Array(
"Arabidopsis_thaliana_X16077",
"Archaeoglobus_fulgidus_X05567",
"Caenorhabditis_elegans_X03680S")

function molecule_change(inForm,selected)
{
var selectedArray = eval(selected + "Array")
while (selectedArray.length < document.inForm.os.options.length)
{
document.inForm.os.options[(document.inForm.os.options.length - 1)] = null
}
for (var i=0; i < selectedArray.length; i++)
{
eval("document.inForm.os.options[i] = new Option('" + selectedArray[i] + "')")
}
}

function affichage()
{
message=""
for (var i=0; i<document.molc.os.length; i++)
{
if (document.molc.os.options[i].selected)
{
message += document.molc.os.options[i].text + "%20"
}
}
url = "http://***.***.***.***/ali.php?message=" + message
FenetreAffichage = window.open(url,"CtrlWindow","toolbar=yes,location=yes,directories=yes,status=yes,scrollbars=yes,resizable=yes,copyhistory=yes,menuBar=yes,width=900,height=600")
}
</SCRIPT>

</SCRIPT>
</HEAD>

<BODY>
<DIV>
<FORM name="molc">
<TABLE>
<TR><TD style="margin-left: auto; vertical-align: top">
<SELECT name="molecule" onChange="molecule_change(document.molc, document.molc.molecule.options[document.molc.molecule.selectedIndex].value)">
<OPTION VALUE="">Select molecule
<OPTION VALUE="LSU">LSU
<OPTION VALUE="SSU">SSU
</SELECT></TD>
<TD style="margin-right: auto">
<SELECT name="os" multiple size="5" style="width: 300px">
</SELECT>
<BR><BR></TD>
<TD style="margin-right: auto"><H2>(max 15 sequences)</H2></TD></TR>
<TR><TD colspan="3" align="center"><INPUT type="button" VALUE="Alignment" onClick="affichage()"></TD></TR>
</TABLE>
</FORM>
</DIV>
</BODY>
A voir également:

3 réponses

Bon, après plusieurs essais, il se trouve que ça bloque quand je passe le nom du formulaire (molc) à la fonction molecule_change. Si je remplace "inForm" par "molc", ça marche... C'est donc que JavaScript ne remplace pas la variable inForm par son contenu. C'est étrange... Y a-t-il une erreur basique que je n'aurais pas vue ?
0
Pas éonnant que tarrive pas a débugger !
tas pas honte de travailler sous LINUX????

:D

sinon fais un copié/coller de ma version de la fonction molecule_change

function molecule_change(inForm,selected)
{
var selectedArray = eval(selected + "Array")
while (selectedArray.length < inForm.os.options.length)
{
document.inForm.os.options[(inForm.os.options.length - 1)] = null
}
for (var i=0; i < selectedArray.length; i++)
{
eval("inForm.os.options[i] = new Option('" + selectedArray[i] + "')")
}
}
0
wagner51 Messages postés 10 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 20 mars 2003
20 mars 2003 à 16:01
Ben quoi, c'est pô bien Linux ? ;-)
Bon d'après ce que j'ai vu, tu as viré tous les préfixes "document." pour passer directement au formulaire "inForm"... OK mais ça ne marche pas. En fait il y a un gros problème avec la façon dont sont écrites les choses.

Par exemple, si je fais un window.open pour afficher les paramètres de débuggage dans une autre fenêtre, ça ne marche pas pour les formulaires, SAUF en utilisant une syntaxe précise (exemple avec un formulaire "molc1") :

Ca, ça marche :
msgWindow.document.write("<BR>DOCUMENT OPTION LENGTH= " + document.molc1.os.options.length + "\n")

Ca, non :
msgWindow.document.write("<BR>DOCUMENT OPTION LENGTH= " + molc1.os.options.length + "\n")

Avec un paramètre "inForm" = "document.molc1"), ça ne marche jamais...

C'est à n'y rien comprendre... ? Ce fichu langage va me faire devenir dingue...
0
wagner51 Messages postés 10 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 20 mars 2003
20 mars 2003 à 16:40
Finalement, ça fonctionne ! J'ai inséré un script du site SELFHTML qui affiche les erreurs rencontrées.

Merci JEREMY pour ton aide.
0