Aide pour javascript
lili
-
kij_82 Messages postés 4260 Statut Contributeur -
kij_82 Messages postés 4260 Statut Contributeur -
Bonjour,
voila je dois améliorer une partie d'un site internet et j'ai du mal a comprendre comment fonctionne le code qui permet la creation de mon menu:
Ce que je comprend pas c déja comment ca marche et en plus pourkoi mon intitulé 2 si il dépasse une certaine longueur empeche le bon fonctionnement de la fonction change_mode..
Merci d'avance
voila je dois améliorer une partie d'un site internet et j'ai du mal a comprendre comment fonctionne le code qui permet la creation de mon menu:
function change_mode()
{
ind = document.menu.mode.selectedIndex;
if (document.menu.mode.options[ind].value == 'formulaire')
{ if (document.menu.mode.options[ind].value == 'requete')
{
document.menu.objet.options.length = 0;
var o=new Option('intitulé1','1');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('intitulé2','2');
document.menu.objet.options[document.menu.objet.options.length]=o;
document.menu.action.value = "rechercher";
Ce que je comprend pas c déja comment ca marche et en plus pourkoi mon intitulé 2 si il dépasse une certaine longueur empeche le bon fonctionnement de la fonction change_mode..
Merci d'avance
A voir également:
- Aide pour javascript
- Telecharger javascript pour pc - Télécharger - Langages
- Javascript void 0 c'est quoi ✓ - Forum Réseaux sociaux
- Afficher un tableau javascript en html ✓ - Forum Javascript
- Javascript arrondi - Forum Javascript
- Javascript arrondir à 2 décimales - Forum Webmastering
38 réponses
- 1
- 2
Suivant
Bonjours lili,
je ne vois pas trop ou est le pb dans ce que tu as donné, par contre je me pose qq question sur le besoin de mettre tes deux test if :
La tu as deux test qui empeche d'entrer dans la suite du code car si ton
Ensuite, dans le code qui suit :
Quelle est l'utilité de mettre au meme endroit (
et la deuxieme fois :
Ou alors il faut écrire de cette facon en incrémentant la taille :
Mais à mon avis pour la première remarque que j'ai fait, l'écécution du script ne passe pas à l'intérieur de tes deux if.
Tu n'a pas autre chose comme code, par exemple celui qui vient apres les deux 'if' justement.
++
je ne vois pas trop ou est le pb dans ce que tu as donné, par contre je me pose qq question sur le besoin de mettre tes deux test if :
ind = document.menu.mode.selectedIndex;
if (document.menu.mode.options[ind].value == 'formulaire')
{
if (document.menu.mode.options[ind].value == 'requete')
{
La tu as deux test qui empeche d'entrer dans la suite du code car si ton
document.menu.mode.options[ind].valueest égal à 'formulaire', il ne peut aps vérifier le deuxieme test en étant égal à 'requete'.
Ensuite, dans le code qui suit :
document.menu.objet.options.length = 0;
var o=new Option('intitulé1','1');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('intitulé2','2');
document.menu.objet.options[document.menu.objet.options.length]=o;
document.menu.action.value = "rechercher";
Quelle est l'utilité de mettre au meme endroit (
document.menu.objet.options[document.menu.objet.options.length]=o;) deux fois de suite une valeur différente, à savoir la premiere fois :
var o=new Option('intitulé1','1');
et la deuxieme fois :
var o=new Option('intitulé2','2');
Ou alors il faut écrire de cette facon en incrémentant la taille :
document.menu.objet.options.length = 0;
var o=new Option('intitulé1','1');
document.menu.objet.options[document.menu.objet.options.length++]=o;
var o=new Option('intitulé2','2');
document.menu.objet.options[document.menu.objet.options.length]=o;
document.menu.action.value = "rechercher";
Mais à mon avis pour la première remarque que j'ai fait, l'écécution du script ne passe pas à l'intérieur de tes deux if.
Tu n'a pas autre chose comme code, par exemple celui qui vient apres les deux 'if' justement.
++
En fait je me suis trompé, j'ai pas mis tout le code c pour ca que ce que j'ai donné est fo.
Après le if du formulaire ya le meme type de chose que après le if pour requete.
Moi cke je comprend pas c a quoi ca sert de mettre ca:
Après le if du formulaire ya le meme type de chose que après le if pour requete.
Moi cke je comprend pas c a quoi ca sert de mettre ca:
document.menu.objet.options.length = 0;
var o=new Option('intitulé1','1');
document.menu.objet.options[document.menu.objet.options.length++]=o;
document.menu.objet.options.length = 0;
Crée une liste d'option vide
var o=new Option('intitulé1','1');
Créé un objet option (un bouton radio) identifié par la chaine '1' et nommé 'intitulé1'
document.menu.objet.options[document.menu.objet.options.length++]=o;
Insère l'option crée dans le document, puis incrémente sa longueur (le ++) (normal, il y a une option de plus ;o))
Crée une liste d'option vide
var o=new Option('intitulé1','1');
Créé un objet option (un bouton radio) identifié par la chaine '1' et nommé 'intitulé1'
document.menu.objet.options[document.menu.objet.options.length++]=o;
Insère l'option crée dans le document, puis incrémente sa longueur (le ++) (normal, il y a une option de plus ;o))
ok merci pour l'explication c dessuite plus clair.
Et sinon vous savez pas pourquoi lorsque j'écrit un intitulé trop long pour intitulé2 la concordance entre mes deux listes déroulantes ne se font plus.
Car j'ai 2 listes déroulantes:
1 coté avec formulaire et requete
l'autre coté avec les options correpsondantes.
Quèand je clique sur requete, les options qui y sont associés s'affiche dans l'autre liste
Mais si je rallonge la longuer de mon intitulé ben ce mecanisme ne fonctionne plus
?????
Et sinon vous savez pas pourquoi lorsque j'écrit un intitulé trop long pour intitulé2 la concordance entre mes deux listes déroulantes ne se font plus.
Car j'ai 2 listes déroulantes:
1 coté avec formulaire et requete
l'autre coté avec les options correpsondantes.
Quèand je clique sur requete, les options qui y sont associés s'affiche dans l'autre liste
Mais si je rallonge la longuer de mon intitulé ben ce mecanisme ne fonctionne plus
?????
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui mais c un site sécurisé je peux donc pas donner l'adresse...
Sinon je vais essayer d'etre plus clair:
j'ai en guise de menu 2 listes déroulantes cote a cote.
La première contient :formulaire,requete,table
Si on selectionne dans la première liste requete le contenu de la deuxième liste change et apparait les options qui correpsondent a la requete.
On peut donc ensuite selectionner intitulé1,intitulé2...Etc
Donc mon problème est que : je me suis rendu compte que si je met un intitulé qui est trop long, lorsque je selectionne requete dans ma 1ere liste la 2emme reste avec les valeurs par defaut......
Sinon je vais essayer d'etre plus clair:
j'ai en guise de menu 2 listes déroulantes cote a cote.
La première contient :formulaire,requete,table
Si on selectionne dans la première liste requete le contenu de la deuxième liste change et apparait les options qui correpsondent a la requete.
On peut donc ensuite selectionner intitulé1,intitulé2...Etc
Donc mon problème est que : je me suis rendu compte que si je met un intitulé qui est trop long, lorsque je selectionne requete dans ma 1ere liste la 2emme reste avec les valeurs par defaut......
Mais ca ji suis déja arriver sauf que ca bug justement quand je met un intitulé trop long.....
allez savoir pourkoi????
allez savoir pourkoi????
regarde ce site si quelque chose peut te mettre sur la bonne voie c'est en anglais)
http://www.quirksmode.org/js/options.html
http://www.quirksmode.org/js/options.html
tu vois que je peut aider quand je veux (j'espére que ce que tu dis kij est vrai ;) ) sinon, j'aurais parlé trop vite LOL (alors ce café?)
Je ne sais pas si tu as fini par résoudre ton problème... Mais si ce n'est pas le cas, il y a moyen d'avoir ton code actuel et ton navigateur + sa version ?
Mon navigateur c konkeror 3.2.3 (du moins celui avec lequel je teste les changements de mon site.
Je travaille donc sur linux.
Mon code est le suivant:
la ou il y a des ...... c la ou lorsque je met mon texte ca ne fonctionne pas.
Et encore une petite bizarri l'intitulé "analyse faites pour un gène donné" lui peut avoir n'importe quelle taille ca amrche quand meme........
Si vous pouvez m'aider c avec grand plaisir
Je travaille donc sur linux.
Mon code est le suivant:
<script language="Javascript">
function change_mode()
{
ind = document.menu.mode.selectedIndex;
if (document.menu.mode.options[ind].value == 'formulaire')
{
document.menu.objet.options.length = 0;
var o=new Option('Nouvelle séquence','sequences');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('Nouvel alignement','alignements');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('Nouveau type de sequence', 'types_sequences');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('Nouveau primer','primers');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('Nouvelle analyse','resultats_analyses');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('Nouveau type d\'analyse','types_analyses');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('Nouvel organisme','individus');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('Nouveau tissu','tissus');
document.menu.objet.options[document.menu.objet.options.length]=o;
document.menu.action.value = "ajouter";
}
if (document.menu.mode.options[ind].value == 'table')
{
document.menu.objet.options.length = 0;
var o=new Option('Les séquences','sequences');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('Les alignements','alignements');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('Les résultats d alignements','resultats_alignements');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('Les differents types de sequences','types_sequences');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('Les primers','primers');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('Les résultats d analyses','resultats_analyses');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('Les differents types d analyses','types_analyses');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('Les organismes repertoriés','individus');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('Les differents tissus de prélèvement','tissus');
document.menu.objet.options[document.menu.objet.options.length]=o;
document.menu.action.value = "visualiser";
}
if (document.menu.mode.options[ind].value == 'requete')
{
document.menu.objet.options.length = 0;
var o=new Option('Analyses faites pour un gène donné','ana_gene');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('Primer utilisé','pri_type');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('.....2','ana_pri');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('....3','ana_per');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('...4','ana_tech');
document.menu.objet.options[document.menu.objet.options.length]=o;
var o=new Option('..5','pri_ana');
document.menu.objet.options[document.menu.objet.options.length]=o;
document.menu.action.value = "rechercher";
}
return;
}
</script>
<div align="center">
<table width="100%" border="0">
<tr>
<td width="30%">
</td>
<td width="40%">
<div align="center">
<p align="center"><b><u><font face="Comic Sans MS" size="5" color="#3366CC">TITRE</font></u></b></p>
</div>
</td>
<td width="30%">
<div align="center">
</div>
</td>
</tr>
</table>
<hr>
<form method="post" objet="<? echo $PHP_SELF; ?>" name="menu" enctype=multipart/form-data>
<div align="center"><font size="2"><i><font size="2"><b>Menu déroulant</b></font><b><font size="2">::</font></b><font size="2">
sélectionnez ce que vous désirez faire:</font></i></font></div>
<select name="mode" onChange="change_mode();">
<option value="formulaire" selected>Formulaires</option>
<option value="table">Tables</option>
<option value="requete">Requêtes</option>
</select>
<select name="objet">
<option value="sequences">Nouvelle séquence</option>
<option value="alignements">Nouvel alignement</option>
<option value="primers">Nouveau Primer</option>
<option value="resultats_analyses">Nouvelle analyse</option>
<option value="types_sequences">Nouveau type de sequence</option>
<option value="types_analyses">Nouveau type d'analyse</option>
<option value="individus">Nouvel organisme</option>
<option value="tissus">Nouveau tissu</option>
</select>
<INPUT type="hidden" name ="action" value="ajouter">
<INPUT type="hidden" name="num_enr" value="">
<input type="submit" name="Submit" value="OK">
</form>
<hr>
</div>
la ou il y a des ...... c la ou lorsque je met mon texte ca ne fonctionne pas.
Et encore une petite bizarri l'intitulé "analyse faites pour un gène donné" lui peut avoir n'importe quelle taille ca amrche quand meme........
Si vous pouvez m'aider c avec grand plaisir
ben écoute ca marche
alors je n'ai qu'une chose a dire......................;merci
Et juste une dernière pitite question.
J'aimerai que lle menu reste sur le dernier choix effectué (car la il revient toujours au truc par default).
Si ya une iddée qui traine par la je suis preneur
alors je n'ai qu'une chose a dire......................;merci
Et juste une dernière pitite question.
J'aimerai que lle menu reste sur le dernier choix effectué (car la il revient toujours au truc par default).
Si ya une iddée qui traine par la je suis preneur
ben que lorsque on selectionne requete et une certaine option que cela reste dessus au lieu qu'une fois la page chargée ca revienne sur formulaire
Comme dit Sam, il faut que tu récupère les valeur selectionnée de ton formulaire par la méthose POST comme ci :
Et regarde dans les propriété des SELECT, tu as une propriété pour mettre une valeur par défaut à ta liste déroulante. Come ca tu met la valeur récupérée dans $bidule.
if(isset($_POST['bidule'])) $bidule = $_POST['bifule']; else $bidule = "";
Et regarde dans les propriété des SELECT, tu as une propriété pour mettre une valeur par défaut à ta liste déroulante. Come ca tu met la valeur récupérée dans $bidule.
- 1
- 2
Suivant