Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/02/2011, 11h16   #1
Invité de passage
 
Inscription : juin 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 11
Points : 4
Points : 4
Par défaut Récupérer tout le contenu d'une liste déroulante

Bonjour,

J'ai réussi à gérer deux listes déroulantes à l'aide d'un Javascript.
Le principe est simple : dans la première liste, j'ai toutes les villes de ma base de données.
Dans la deuxième liste, je récupère les villes que je souhaite.
Pour cela j'utilise un bouton qui me permet d'ajouter un élément de ma liste1 vers ma liste 2 et un bouton qui me permet de supprimer un élément de ma liste 2.

Ensuite, j'ai créé un bouton ajouter pour récupérer le contenu de ma deuxième liste déroulante afin de la mettre dans ma base de données.

Et c'est ici que je bloque puisque je ne vois pas comment je peux récupérer tout le contenu de ma liste déroulante pour l'intégrer dans ma base.

Ci-joint quelques éléments du code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
		<!-- SRIPT PERMETTANT DE GERER LES DEUX LISTES DEROULANTES-->
		<script type="text/javascript">
		<!--
		function ajouter(){
		 nouvel_element = new Option(document.formulaire.liste.value,document.formulaire.liste.value,false,false);
		 document.formulaire.liste2.options[document.formulaire.liste2.length] = nouvel_element;
		 document.formulaire.liste.value = "";
		}
 
		function effacer(){
		var compteselect=0;
			for(yo=0;yo<document.formulaire.liste2.length;yo++){
				if(document.formulaire.liste2.options[yo].selected == true){
				compteselect++;
				}
				if(compteselect>0){
					for(yo=0;yo<document.formulaire.liste2.length;yo++){
						if(document.formulaire.liste2.options[yo].selected == true){
						document.formulaire.liste2.options[yo] = null;
						}
					}
				effacer();
				}
			}
		}
		//-->
		</script>
 
<form action="newgrp.php" method="post" name="formulaire">
				<table CELLPADDING='40px'>
					<tr>
						<td rowspan='2'><select STYLE="width:265" NAME='liste' size="20" multiple="multiple">
							<option VALUE="-1">-----  Choisir une Ville dans la liste  -----</option>
 
							<?php
 
							// Nom des listes
							$sql = " SELECT * FROM commune";
							$query = mysql_query($sql,$connect);
							while ($row = mysql_fetch_array($query)) {
								$ligne = $row['N_Com_min'];
							?>
								<option VALUE="<?php echo $row['N_Com_min'] ?>"> <?php echo $ligne ?> </option>
							<?php
							}
							?> 
							</select></td>
							<td><input type="button" name="Ajouter" value=">" style="width:50px; height: 50px;" onClick="ajouter()"></td>
 
						<td rowspan='2'><select name="liste2" size="20" multiple="multiple">
						<option VALUE="-1">-----  Choisir une Ville dans la liste  -----</option>
					</select></td>
					</tr>
					<tr>
					<td><input type="button" name="Supprimer" value="<" style="width: 50px; height: 50px;" onClick="effacer()"></td>
					</tr>
				</table>
			</form>
			<input type="button" name="valider" value="Valider" onClick="self.location.href='ajoutlist.php'">
En vous remerciant pour vos réponses.
dreamerforever est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 11h57   #2
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 450
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 450
Points : 2 149
Points : 2 149
Tu peux ajouter un input en hidden ayant pour valeur la concaténation des valeurs de la liste 2 (avec un séparateur qui va bien) :
Code :
<input type="hidden" name="valeurs" value="valeur 1||valeur 2||valeur 3"/>
Tu peux aussi créer un input en hidden par entrée dans la liste 2 avec un nom incrémentiel (et un autre input permettant de connaître le nombre de valeurs) :
Code :
1
2
3
4
<input type="hidden" name="nombre_valeurs" value="3"/>
<input type="hidden" name="val1" value="valeur 1"/>
<input type="hidden" name="val2" value="valeur 2"/>
<input type="hidden" name="val3" value="valeur 3"/>
La deuxième solution présente l'avantage de ne pas avoir à définir de séparateur (caractère ne devant pas être présent dans les données) mais elle est un peu plus complexe à mettre en place.
Loceka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 12h13   #3
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Bonsoir,
Citation:
<input type="button" name="valider" value="Valider" onClick="self.location.href='ajoutlist.php'">
Code :
1
2
3
4
<form action="ajoutlist.php" method="post" name="formulaire">
.....
<input type="submit" name="valider" value="Valider" />
</form>
Tu crées une fonction qui va sélectionner toutes les options du select avant de faire le submit.
Coté php, tu récupères un array ou une valeur(selon le nombre d'options sélectionnées) dans

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/02/2011, 14h13   #4
Invité de passage
 
Inscription : juin 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 11
Points : 4
Points : 4
Merci beaucoup pour vos réponses.

J'ai créé une fonction me permettant de sélectionner toutes les valeurs contenues dans ma liste2 :

Code :
1
2
3
4
5
function tout(){
			limit = document.formulaire.liste2.options.length;
			for ( i=0; i<limit && i<99; i++ )
			document.formulaire.liste2.options[i].selected = true;
		}
Maintenant comment faire pour
Citation:
sélectionner toutes les options du select avant de faire le submit
dreamerforever est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 14h21   #5
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Code html :
<form action="ajoutlist.php" method="post" name="formulaire" onsubmit="tout()">
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/02/2011, 14h24   #6
Invité de passage
 
Inscription : juin 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 11
Points : 4
Points : 4
J'étais parti sur quelque chose de ce genre là également.

Merci infiniment pour ton aide.
dreamerforever est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h46.


 
 
 
 
Partenaires

Hébergement Web