Passer d'une combobox à un autre ? - HTML/CSS - Programmation
Marsh Posté le 17-05-2005 à 16:56:59
Tu peux créer deux <select> et une fonction javascript qui te permets de faire basculer les enregistrements d'un select à l'autre.
Code :
|
Marsh Posté le 18-05-2005 à 16:54:30
Bonjour une nouvelle fois,
J'ai récupéré un script qui ressemble grandement à celui que tu me donnes, seulement je n'arrive pas à récupérer le contenu de la combobox de droite (ni celle de gauche d'ailleurs... :? ).
J'aimerai stocker tout ce qu'elle contient dans un tableau afin de pouvoir le traiter en ASP. Tout la partie ASP je sais faire et je l'ai même déjà fait, mais pour ce qui est d'avoir le tableau alors la
J'ai bien essayé avec le formulaire, mais il se contente de me renvoyer le champ selectionné et non pas tout le contenue de la liste...
Merci à ceux qui pourront m'aider et a robbyone pour l'avoir déjà fait
Code :
|
Marsh Posté le 18-05-2005 à 17:06:57
ATTENTION, tu n'auras pas tout le contenu aussi facilement : fais une boucle pour sélectionner chaque champ et sauvegarger son contenu dans un tableau !?!
Tu as tout ce dont tu peux avoir besoin dans ces quelques lignes postées précédemment (longueur, position, valeur, nom)
Marsh Posté le 18-05-2005 à 17:18:38
Le problème c'est que ne connaissant strictement rien au javascript, je ne sais même pas comment faire ca, ni même comment récupérer n'importe laquelle de ces valeurs :?
Marsh Posté le 18-05-2005 à 17:27:21
Si tu ne lui dit pas ce qu'il faut faire à ton formulaire clair qu'il ne sert à rien
<form action="ta_page_de_traitement.asp" method="post" id="form"> |
Marsh Posté le 18-05-2005 à 17:36:46
Oui, oui, mais non !
Enfin oui ca je vais en avoir besoin, mais mon problème c'est de recupérer le contenu de la liste et ca, on ne peut le faire qu'en javascript et c'est bien pour ca que je ne sais pas le faire...
Et oui j'utiliserai bien mon formulaire pour charger la nouvelle page mais qui fera un traitement sur le tableau recupéré avec recherche dans la BD et tout le tralala.
Marsh Posté le 18-05-2005 à 17:49:46
Il me suffit d'avoir un tableau tout con avec dedans la "value" de chaque champ de la liste de droite. Je colle le tableau dans un variable session... ah merde j'peux pas faire ca en html, donc me faudrait le faire en java.
Apres je me débrouille en ASP pour recupérer la variable session, pour faire une boucle, recupérer ce qu'il y a dans le tableau, coller ma requete et afficher le resultat.
Marsh Posté le 18-05-2005 à 18:18:38
Pougnouf a écrit : Oui, oui, mais non ! |
Pas du tout on fait ça avec un formulaire qu'on envois à la page d'insertion en asp il n'y a pas de javascript la dedans
Marsh Posté le 18-05-2005 à 18:21:43
Flyman30 a écrit : Pas du tout on fait ça avec un formulaire qu'on envois à la page d'insertion en asp il n'y a pas de javascript la dedans |
avec le même formulaire tu peux faire ta requete SQL de recherche dans ta base, c'est très facile en ASP
Marsh Posté le 19-05-2005 à 10:05:19
Le formulaire ne peut me renvoyer que le champ saisi (cad surligné en bleu) et non tout les champs de la liste de droite !
Mon problème c'est qu'actuellement je suis incapable de récupérer les champs passés a droite et apres de les passer a mon code ASP
et a par en passant par une variable de session (ou alors par l'URL avec GET) je ne vois pas comment faire :-/
Marsh Posté le 19-05-2005 à 10:48:17
Il faudrait rechercher mais je pense qu'il est possible de créer une fonction javascript appelée lors du submit.
Cette fonction bouclerait sur chaque élément du select et le sélectionnerait :
Code :
|
Et ne pas oublier de déclarer le select multiple et mettre un tableau[] dans son nom :
Code :
|
Lors du submit, la page de destination reçoit la variable $selectNAME qui sera un tableau de valeurs
Marsh Posté le 19-05-2005 à 17:43:39
Bon alors vu que je n'arrivais pas avec cette méthode j'ai essayé autrement, je me suis créé un fonction qui récupère les valeurs des champs de la liste de droite, je les concatène séparé par un "/" et je retourne une URL que j'aimerais qu'il me charge dans la fenettre active.
Je lance ma fonction sur un click sur un bouton et a priori ca a l'air de marcher !
Marsh Posté le 20-05-2005 à 17:44:06
Bon par contre maintenant je cherche un moyen pour selectionner une des lignes d'un combobox en javaScript, quelqu'un connait il la syntaxe exacte ? pasque la moi je seche... :-(
Marsh Posté le 23-05-2005 à 10:11:46
Citation : document.formNAME.selectNAME.options[i].selected = true; |
Quelqu'un connait-il la syntaxe exacte ? pasque la je seche et pourtant c'est pas faute de chercher
Marsh Posté le 23-05-2005 à 10:29:53
Un select commence à 0 et pour pour sélectionner le premier élément tu tappes :
Code :
|
Et je te ferais remarquer que cette syntaxe était présente dans ma première réponse !!!
Je le dis et le répète, tu as tout ce dont tu as besoin dans ces quelques lignes !
Marsh Posté le 23-05-2005 à 10:41:25
robbyone a écrit : Un select commence à 0 et pour pour sélectionner le premier élément tu tappes :
|
Au passage, cette syntaxe est complètement obsolète
Marsh Posté le 23-05-2005 à 10:43:30
Ok mais tu n'es guère constructif !
Ton message ne sert à rien si tu ne rajoutes pas la syntaxe up2date ...
Marsh Posté le 23-05-2005 à 10:47:01
@robbyone : Bah euh surrement, sauf que je capte pas tout et j'ai encore du mal a identifier les méthodes /attributs
@FlorentG : Ah bon ?! Merde alors j'apprends le javaScript avec une syntaxe obsolète Et ca s'ecrit comment maintenant ?
Marsh Posté le 23-05-2005 à 10:48:44
Quelque chose genre ça :
<form id="formulaire" action="pouet.php"> |
Et :
document.getElementById('activite').selectedIndex = 0; |
Donc en résumé, un id sur chaque contrôle, un <label> associé, et des fonctions DOM pour accéder aux éléments. On vire tous les <font>, les tableaux, et les méthodes d'avant-guerre
Marsh Posté le 23-05-2005 à 10:57:19
Et dire que mon maitre de stage m'a dit : "en html on fait tout avec des tableaux, pas de frame, pas de div, toujours des tableaux et si tu fais avec autre chose je te fais tout refaire"
Marsh Posté le 23-05-2005 à 10:58:46
Pougnouf a écrit : Et dire que mon maitre de stage m'a dit : "en html on fait tout avec des tableaux, pas de frame, pas de div, toujours des tableaux et si tu fais avec autre chose je te fais tout refaire" |
Oh maman... Change vite de maitre de stage, c'est encore le genre de mec qui a appris l'HTML il y a 10 ans et qui ne s'est jamais mis à jour.
Marsh Posté le 23-05-2005 à 11:03:30
ben il me reste que 3 semaines de stage et puis il doit avoir environs 25-28 ans, il est plutot jeune ! Enfin bon...
Marsh Posté le 23-05-2005 à 11:04:33
Ca n'empêche rien Faudra lui expliquer que maintenant on sépare contenu/structure et présentation, à savoir tout la mise en page est fait via CSS
Marsh Posté le 23-05-2005 à 11:08:07
En même temps a l'IUT en HTML on m'a apprit les tableaux, et pas le CSS, enfin le but c'était pas d'apprendre l'html mais le PHP alors ils ont du nous dire de faire le plus simple/rapide non ?
Marsh Posté le 23-05-2005 à 11:09:14
C'est le problème : 95% des développeurs web ne connaissent ni le terme CSS, ni le terme W3C... C'est pareil pour les profs
Marsh Posté le 23-05-2005 à 11:11:19
Pougnouf a écrit : Et dire que mon maitre de stage m'a dit : "en html on fait tout avec des tableaux, pas de frame, pas de div, toujours des tableaux et si tu fais avec autre chose je te fais tout refaire" |
p'tain, pas de bol.
faudra lui citer la signature de florentG
Marsh Posté le 23-05-2005 à 11:21:51
P'tet bien mais je vais éviter hein, c'est pas comme si a la fin il me m'était une note qui compte dans le diplome aussi
Marsh Posté le 23-05-2005 à 11:32:51
Bon enfin c'est bien beau de discuter mais on c'est égaré la... bon je mets mon code car j'arrive pas à le faire marcher peut etre que l'un d'entre vous pourra m'aider ! (par contre alors il est rédigé avec une syntaxe obsolète )
voici mon code, il est sensé afficher 2 combobox, on envoit les champs choisi dans celle de droite on valide le formulaire, on recupère les données via GET et on fait la requete (pas présente ici car ca n'apporte rien mais ca au moins ca marche ) l'idée apres c'était que lorsque la page ce réaffiche (avec la reponse de la requete) on remet directement dans la combobox de droite les champs selectionnés précédement.
Code :
|
Marsh Posté le 24-05-2005 à 10:28:21
Personne ne peut-il m'aider ?
J'ai réelement besoin d'aide, je suis complètement bloqué la !
Marsh Posté le 24-05-2005 à 20:40:45
Un petite question un peu débile comme ca :
comment faire pour eviter d'écrire des codes obsoletes?
Je veux dire y'a t il des sites à jour?
(désolé de l'incruste )
Marsh Posté le 25-05-2005 à 10:17:50
Ben probablement une partie des sites créés récement et des sites très consulté non ?
Sinon j'aurai bien voulu un petit bout, une piste ou un quelconque moyen d'arriver a une solution mais visiblement mon code laisse tout le monde indifférent :-(
Marsh Posté le 25-05-2005 à 10:39:06
A quel endroit cela coince ?
Tu affiches les deux <select> ?
Tu parviens à envoyer les infos ?
...
Tentes au moins un debug (quelques print "<!-- ... -->" par ci, par là pour vérifier les contenus)
Marsh Posté le 25-05-2005 à 11:26:32
Hé bien, tout s'affiche, je peux passer les champs a droite puis les remettre a gauche, je peux valider le fomulaire, je recupère les infos sans problème, et je fais ma requete apres et tout le tralala.
Seul problème, j'aimerai qu'apres un clic de validation qui entraine le rechargement de la page (avec la requete), le champs mis a droite le soit automatiquement sur la page rechargé. En gros qu'on puisse clairement voir les correspondant a la requete afin de pourvoir en enlever un.
Euh... c'est compréhensible ou j'ai perdu tout le monde la ?
Bref pour arriver a ca au moment du rechargement de la page, je fais le tour des options par defaut de la liste de gauche et des que j'en trouve une je la selectionne puis la fait passer a droite. Enfin un théorie, parce qu'en pratique ca n'a pas l'air de marcher !! Voila ou j'en suis...
Marsh Posté le 25-05-2005 à 13:21:49
On dirait que tu fait un post-traitement en javascript, toi !
Profites du rechargement pour générer directement les listes en php.
Pour chaque liste, tu lances ta requête :
* pour la première liste, si le champ doit être à droite tu ne l'affiches pas !
* pour la seconde liste, si le champ correspond à un des champ que tu as passé en paramètre, tu l'affiches.
Si ta requête est très lourde à être générée (grosse bdd), tu ne la lance qu'une seule fois et tu stoques les valeurs dans une table (d'ailleurs la fct pg_fetch_array le fait toute seule) pour pouvoir la parcourir deux fois (une fois par liste)
Marsh Posté le 25-05-2005 à 14:08:59
Ha, c'est pas con comme idée, pas con du tout même, je vais essayé ca !
Merci de m'avoir repondu ^^
PS : je reposterai ici si j'ai d'autre problème ou si ca marche. En attendant si quelqu'un d'autre veut réagir, qu'il ne se prive pas (genre par exemple pour m'expliquer pourquoi ce que j'ai fait ne marche pas...)
Marsh Posté le 25-05-2005 à 14:13:54
pg_fetch_array retourne une table, donc easy !
Marsh Posté le 25-05-2005 à 14:34:12
ben y a surement une fonction équivalent hein
Marsh Posté le 17-05-2005 à 16:10:39
Bonjour,
Voila je cherche a avoir 2 combobox, une à droite et une à gauche et entre les 2 3 boutons : ">>", "<<" et "Effacer".
La combobox de gauche contient un certain nombre de champs tandis que celle de droite est vide a l'origine. Le but serait de selectionner un champ a gauche et de cliquer sur ">>" pour le passer a droite en le faisant disparaitre de la combobox de gauche. De même un clic sur << renvoi le champ selectionné à gauche et le bouton Effacer vide simplement la combobox de droite tout en remettant tout dans celle de gauche.
Bon je sais que c'est faisable, j'avais essayé en ASP mais mon maitre de stage vient de me dire de le faire en Javascript ou de trouver du code direct sur le web...
Etant donné que je ne connais rien (ou pas grand chose...) en javascript et que je ne trouve rien sur le net, je viens vous demander conseil
Donc merci a tout ceux qui m'aiderons