enieme sujet sur onchange / ListBox - HTML/CSS - Programmation
Marsh Posté le 11-04-2006 à 16:10:18
C'est ton test avec le if qu'est n'importe quoi
Pour avoir la valeur de l'option selectionné, il faut utiliser selectedIndex, un truc dans le genre ( avec un id type_aide sur ton select):
Code :
|
Par ailleurs les " autour de la fonction appelée dans le onchange ça coute rien
Marsh Posté le 11-04-2006 à 16:23:06
Merci de m'aider, c'est sympa..
Mais la je suis carrement démoralisé, j'ai une erreur "objet attendu" sous IE.
J'ai bien fait tout comme toi pourtant, j'ai meme pas l'alert
Je rend les armes
Marsh Posté le 11-04-2006 à 16:26:32
Code :
|
edit: Ah oui et le / a la fin de ta balise d'ouverte de select ça suxxe!
Marsh Posté le 11-04-2006 à 16:31:48
Ok Bon je me suis repris en main
Ta solution marche parfaitement sous IE, l'alert me donne un "[object]"
Par contre sous FF j'ai une alerte avec dedans : "null"
Pas cool
edit:que je clique sur la bonne option ou pas j'ai "null"
pour le /> du select, merci j'avais pas vu! C'est un scandale
Marsh Posté le 11-04-2006 à 16:36:36
Hum.. en recopiant ton code dans un nouveaudoc, FF affiche parfaitement comme il faut..
Je vais regarder mon code de bout en bout pour trouver l'erreur
Marsh Posté le 11-04-2006 à 16:41:05
Ok quel con, j'ai oublié le id=" dans mon select..
Ca marche nikel maintenant.. Tous ca pour ca
Meric pour ton coup de main encore une fois
Marsh Posté le 11-04-2006 à 20:09:26
ReplyMarsh Posté le 11-04-2006 à 23:51:22
Oui, c'est pareil, j'avais fait comme ca avant.
M'enfin ca marche, maintenant je dois alimenter une liste en fonction du clik sur option d'une autre list
Je connais la methode mais je vais en chier
en gros et normalement : je me suicide demain
Marsh Posté le 12-04-2006 à 09:30:50
Salut
J'ai une autre petite question :
Est il possible en Javascript de compter le nombre d'options qui compose un select?
J'ai besoin de ce nombre pour incrementer la valeur de size="" du select .
Si ca existe pas, je me debrouillerais en php+javascript
EDIT:
bon j'ai compter le nombre d'options que je créé avec ma boucle php et j'ai ensuite modifier la valeur size avec javascript :
document.getElementById('choix_matos').size = <? echo $i; ?>
Marsh Posté le 12-04-2006 à 09:44:31
gatsu35 a écrit : et pourquoi passer par le selected index alors que monselect.value marche ??? |
Argh oui c'est vrai, c'est juste que j'ai tellement l'habitude de faire comme ça pour récuperer d'autres attributs sur les options que j'oublie que pour la valeur on peut faire si simplement...
bixibu a écrit : M'enfin ca marche, maintenant je dois alimenter une liste en fonction du clik sur option d'une autre list |
Utilise le DOM a fond et essaye de faire ça proprement...Un gros tu te fais une fonction qui génère tes options( et qui prend par exemple l'id du select visé et un array en params)
Code :
|
Voilou un truc comme ça, bon c'est non testé mais l'idée y est!!!
Marsh Posté le 12-04-2006 à 10:12:59
Wowowow lol. Toujours aussi efficace anapajari.
En fait, j'ai un peu laissé tombé cette idée de liste qui en alimente une autre (mais ce que tu as posté, je m'en reservirais surement dans pas longtemps).
EN fait mon probleme est que je dois permettre a l'utilisateur de choisir un materiel qui fait partie d'une arborescence de type de materiel (Arbre de 2 sous catégorie max)
Je pensais donc faire selectionner a l'user la premiere catégorie via une listbox1.. qui affiche une autre listbox2 alimentée en fonction de listbox1 qui affiche cette fois les sous-catégorie de la catégorie
Puis cette listbox2 en appelerais ensuite une autre, avec cette fois les materiels eux meme! (seuls les matos de la cat et sous-cat precedemment renseigné bien sur) enfin!
Mais la je me suis tournée vers 1 seule grosse liste avec une taille fixe (pas les liste on clik et ca déroul mais la liste directement déroulé)
Pour l'instant une centaine de ligne sont affichés, ca passe.. Le plus gros prob c'est l'indentation des sous-cat sous IE.
Si vous voyez une meilleure soluce , je suis tout ouie
Merci
Marsh Posté le 12-04-2006 à 10:50:15
Perso j'aurais fait ça:
Code :
|
C'est super vite fait, il y a surement un ou deux bugs cachés mais ça doit pas être long... En plus c'est indépendant du niveau, si jamais tu as besoin tu peux en mettre autant que tu veux...
Marsh Posté le 12-04-2006 à 11:03:59
Comment dire... C'est parfait!
Il m'aurait fallu 2 jours pour faire ca vu mon niveau en JS!
Merci Beaucoup !
Marsh Posté le 12-04-2006 à 11:20:29
bixibu a écrit : Comment dire... C'est parfait! |
Bin si tu regardes bien y'a rien de vraiment compliqué
Une fois que tu sais te promener dans les noeuds de ton document(et si celui-ci est correctement écrit) avec le DOM tu peux tout faire.
Marsh Posté le 12-04-2006 à 14:08:52
Bon
j'ai 2 probleme et 1 question :
Question:
J'ai 1 formulaire tout bete dont un champs texte qui se rempli en cliquant sur un bouton. Ce bouton ouvre une pop-UP. Dans cette pop-up un autre formulaire contenant une listbox.
J'aimerais savoir comment faire pour récupérer dans mon champs texte de la page principal la valeur de l' "option" que l'utilisateur a cliqué. POST? GET? ou carrement du Javascript pur et dur?
ps:la page principal peut etre réactualisée.
Probleme:
Concernant cette meme pop-up, son ouverture se déclenche parfaitement sous Mozilla mais pas sous IE (5.0)
Est-ce normal (IE trop vieu ?) :
Code :
|
Si je vire les 2 derniers parametre ca marche par contre (window.open('choix_mat.php') ca c ok )
Sinon, sous IE5 ton script bug a la ligne 25:
sonsNode[1].className="disp";
IE me dit que le 1 n'est pas un objet
pourtant ca devrait etre OK non?
Ca devrait etre mes dernieres questions ^^
Marsh Posté le 12-04-2006 à 14:33:39
bixibu a écrit : |
Vu que tu es parti sur du js de partout autant l'utiliser/en profiter/en abuser !
Dans la page html du popup, tu créées une fonction:
Code :
|
Et sur le select en question tu fais:
Code :
|
Le "mot clé" à connaitre c'est opener, ça te permet d'acceder a la fenêtre ayant ouvert le pop-up dans lequel "tu es".
La fonction, tu peux t'en resservir ailleurs ci-besoin, il suffit juste de passer les bons paramètres.
note: code non testé comme d'hab, donc non garanti bug-proof
bixibu a écrit :
|
Le deuxième paramètre est le "nom de ta fenêtre", en fait c'est trompeur parce que c'est le "nom de la variable qui te permet d'accèder à ta fenêtre", et les espaces dans les noms de variables s'pas top
Dans enleve juste les espaces.
bixibu a écrit : |
ça devait arriver... Le support du DOM sur IE5.5 est ... pas comme sur IE6
Tu peux essayer de ruser en forçant la récupération du 1er UL ( qui manque dans un coin ):
Code :
|
Marsh Posté le 12-04-2006 à 16:18:42
Bon he ben je dois te remercier !
Tout marche parfaitement (sous mozilla ) et j'y serais jamais arrivé seul (et dieu sais que google est mon meilleur ami)
Je présente mon site demain, il va y avoir des gloussements ^^
Bon sinon pour IE, j'ai le 5.0 sur ma machine, pas le 5.5 dont tu m'as parlé. Mon probleme vient il de la d'apres toi ?
Sinon, le javascript en fait, c'est vraiment.. jouissif!
Code :
|
j'suis trop fier
Le label de ma div , je peut le récupérer sans doute plus proprement mais bon...
Allez Merci Encore pour le temps que tu as passé à m'aider.
Citation : /*** la tu peux meme sortir de la boucle en fait parce que "normalement" il ne peut en rester(enfin avoir) qu'un ***/ |
Effectivement il ne m'en reste qu'un (de cheveu ) et je sort de la boucle a 17h Alleluya
Marsh Posté le 11-04-2006 à 15:53:31
Salut
Bon je craque, ca fait 2h que je lutte avec Javascript qui d'ailleurs devrais pas exister tellement c'est chiant .. mais bon d'un autre coté j'en ai besoin
J'ai ce code :
et
Donc en gros: quand je clique sur l'option dont la valeur est égale a 0 ca m'affiche la div et un beau YAHOOO
Probleme : ca marche sous IE mais pas sous Firefox.. JS est bien activé partout, firefox execute du JS ailleurs mais la ca bloque.
Une idée? je pige pas
merci