Script JavaScript non fonctionnel
wagner51
-
wagner51 Messages postés 10 Statut Membre -
wagner51 Messages postés 10 Statut Membre -
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>
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:
- Script JavaScript non fonctionnel
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Faux iphone fonctionnel - Accueil - Guide téléphones
- Telecharger javascript - Télécharger - Langages
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 ?
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] + "')")
}
}
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] + "')")
}
}
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...
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...