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 11/03/2011, 13h52   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 51
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 51
Points : 13
Points : 13
Envoyer un message via Skype™ à Chedi
Par défaut recuperer la valeur d'un champ de type select

bonjour tlm,
je sais pas si c'est ici de mettre que je met mon problème puisque il contient du javascript et du php
après une longue recherche je n'arrive pas à trouver une réponse claire pour mon problème

ce scripts permet de basculer des champs d'une select vers une autre
je veux maintenant récupérer les valeurs basculées dans la 2 éme select pour l'insérer un par un dans ma base de données


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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
     <html>
     <head>
     <SCRIPT LANGUAGE="JavaScript">
     function Deplacer(l1,l2)
     {
     for (i=0; i < l1.options.length ; i++)
     {
     if (l1.options[i].selected && l1.options[i]!= "" )
     {
     // alert ("toto");
     // alert(l1.options[i].text);
     // alert(l1.options[i].value);
     o=new Option(l1.options[i].text,l1.options[i].value);
     l2.options[l2.options.length]=o;
     l1.options[i]=null;
     i = i -1 ;
     }
     else
     {
     // alert("Aucun élément sélectionné");
     }
     }
     }
 
     function DeplacerTout(l1,l2)
     {
     for (i=0; i < l1.options.length ; i++)
     {
 
     // alert ("toto");
     // alert(l1.options[i].text);
     // alert(l1.options[i].value);
     o=new Option(l1.options[i].text,l1.options[i].value);
     l2.options[l2.options.length]=o;
     l1.options[i]=null;
     i = i -1 ;
     }
     }
 
     function menuswitch(menu, way)
     {
     // Init
     var menumax = menu.length -2;
     var menusel = menu.selectedIndex;
 
     // Debordement
     if ((menusel < 0) || (menusel < 1 && way == -1) || (menusel > menumax && way == 1)) { return false; }    
    // Permutation
     tmpopt = new Option( menu.options[menusel+way].text, menu.options[menusel+way].value );
 
     menu.options[menusel+way].text = menu.options[menusel].text;
     menu.options[menusel+way].value = menu.options[menusel].value;
     menu.options[menusel+way].selected = true;
 
     menu.options[menusel].text = tmpopt.text;
     menu.options[menusel].value = tmpopt.value;
     menu.options[menusel].selected = false;
     return true;
     }
 
     function menusubmit(menu1,menu2)
     {
     var menulen1 = menu1.length;
     for (i=0; i < menulen1; i++)
     {
     menu1.options[i].selected = true;
     }
     var menulen2 = menu2.length;
     for (j=0; j < menulen2; j++)
     {
     menu2.options[j].selected = true;
     }
     }
     //-->
     </SCRIPT>
     </head>
     <body>
     <?php
   // Paramètres de la Connexion à la base MYSQL
   $user="root";
   $host="localhost";
   $password="";
   $database="test";
   $connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");
 
   mysql_select_db($database,$connexion);
 
   $rq="Select * from script_categorie order by designation;";
   $result= mysql_query ($rq) or die ("Select impossible");
 
   ?>
     <FORM name="formulaire" action="page.php" method"get" onSubmit="javascript:menusubmit(formulaire.listselect,formulaire.listunselect)">
     <table border="0" cellpadding="0" cellspacing="1" width="400" height="150" bgcolor="#808080" >
     <tr>
     <td height="120" width="200">
     <select name="listunselect" multiple width="200" size="10" OnDblClick="javascript:Deplacer(this.form.listunselect,this.form.listselect)" style="width:180px;font:normal Trebuchet MS;font-size: 9px;">
     <?php
	while($var=mysql_fetch_array($result)){
	echo'<OPTION value="Planche"> '.$var["designation"].' </OPTION>
			' ;	
 
 
	}
	?>
     </select>
     </td>
     <td height="120" width="50" align="center">
     <input value="&nbsp;>&nbsp;" type="button" OnClick="javascript:Deplacer(this.form.listunselect,this.form.listselect)"><br>
     <input value="&nbsp;<&nbsp;" type="button" OnClick="javascript:Deplacer(this.form.listselect,this.form.listunselect)"><br>
     <input value=">>" type="button" OnClick="javascript:DeplacerTout(this.form.listunselect,this.form.listselect)"><br>
     <input value="<<" type="button" OnClick="javascript:DeplacerTout(this.form.listselect,this.form.listunselect)">
     </td>
     <td height="120" width="200">
     <select name="listselect" multiple size="10" width="200" OnDblClick="javascript:Deplacer(this.form.listselect,this.form.listunselect)" style="width:180px;font:normal Trebuchet MS;font-size: 9px;">
     <OPTION value="10">----------------------</OPTION>
     </select>
 
     </td>
     <td height="120" width="50" align="center">
     <input value="&nbsp;/\&nbsp;" type="button" onClick="javascript:menuswitch(this.form.listselect, -1)"><br>
     <input value="&nbsp;\/&nbsp;" type="button" onClick="javascript:menuswitch(this.form.listselect, 1)">
     </td>
     </tr>
     <tr>
     <td height="30" width="400" colspan= 4 align="center"><input name="bSave" type="submit" value="Valider" style="width:180px;font:normal Trebuchet MS;font-size: 9px;"></td>
     </tr>
     </table>
     <SCRIPT language="javascript">
     // création d'une ligne pour initialiser la largeur puis suppression par ce javascript
     document.formulaire.listselect.options.length=0;
     </SCRIPT>
     </form>
 
     </body>
 
     </html>
si quelqu'un peut m'aider je serais très très reconnaissant
Chedi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 15h07   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 757
Points : 4 757
cela ce passe coté serveur, Comment extraire les valeurs d'un SELECT multiple ?
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 17h04   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 51
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 51
Points : 13
Points : 13
Envoyer un message via Skype™ à Chedi
oui j'ai trouvé ça mais le problème lorsque je met les [] le javascript ne fonctionne pas et il m'affiche une ligne dans la 2 éme liste

je crois qu'il faut mettre les [] dans le select et dans le code javascript! je sais pas où exactement
merci
Chedi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 17h58   #4
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 757
Points : 4 757
Citation:
oui j'ai trouvé ça mais le problème lorsque je met les [] le javascript ne fonctionne pas et il m'affiche une ligne dans la 2 éme liste
attention au erreur de syntaxe.

Les [] appartiennent au nom donc il faut écrire
Code :
<select name="listselect[]" multiple
ensuite partout dans ta page il te faut remplacer les this.form.listselect par des this.form['listselect[]']

et sur l'initialisation mettre
Code :
1
2
//document.formulaire.listselect.options.length=0;
document.formulaire['listselect[]'].options.length=0;
Pendant que l'on y est
- remplaces
Code :
<SCRIPT LANGUAGE="JavaScript">
par
Code :
<script type="text/javascript">
- supprimes javascript: sur les événements, cela est sous entendu et passe le total en minuscule
Code :
<select name="listselect[]" multiple size="10" width="200" ondblclick="Deplacer(this.form['listselect[]'],this.form.listunselect)"
- mets les styles dans la partie STYLE de ta page et non pas dans les balises...
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 10h39   #5
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 51
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 51
Points : 13
Points : 13
Envoyer un message via Skype™ à Chedi
bonjour NoSmoking,
merci pour ton aide ^^

je te mets le code après modif

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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
     <html>
     <head>
     <SCRIPT LANGUAGE="JavaScript">
     function Deplacer(l1,l2)
     {
     for (i=0; i < l1.options.length ; i++)
     {
     if (l1.options[i].selected && l1.options[i]!= "" )
     {
     // alert ("toto");
     // alert(l1.options[i].text);
     // alert(l1.options[i].value);
     o=new Option(l1.options[i].text,l1.options[i].value);
     l2.options[l2.options.length]=o;
     l1.options[i]=null;
     i = i -1 ;
     }
     else
     {
     // alert("Aucun élément sélectionné");
     }
     }
     }
 
     function DeplacerTout(l1,l2)
     {
     for (i=0; i < l1.options.length ; i++)
     {
 
     // alert ("toto");
     // alert(l1.options[i].text);
     // alert(l1.options[i].value);
     o=new Option(l1.options[i].text,l1.options[i].value);
     l2.options[l2.options.length]=o;
     l1.options[i]=null;
     i = i -1 ;
     }
     }
 
     function menuswitch(menu, way)
     {
     // Init
     var menumax = menu.length -2;
     var menusel = menu.selectedIndex;
 
     // Debordement
     if ((menusel < 0) || (menusel < 1 && way == -1) || (menusel > menumax && way == 1)) { return false; }    
    // Permutation
     tmpopt = new Option( menu.options[menusel+way].text, menu.options[menusel+way].value );
 
     menu.options[menusel+way].text = menu.options[menusel].text;
     menu.options[menusel+way].value = menu.options[menusel].value;
     menu.options[menusel+way].selected = true;
 
     menu.options[menusel].text = tmpopt.text;
     menu.options[menusel].value = tmpopt.value;
     menu.options[menusel].selected = false;
     return true;
     }
 
     function menusubmit(menu1,menu2)
     {
     var menulen1 = menu1.length;
     for (i=0; i < menulen1; i++)
     {
     menu1.options[i].selected = true;
     }
     var menulen2 = menu2.length;
     for (j=0; j < menulen2; j++)
     {
     menu2.options[j].selected = true;
     }
     }
     //-->
     </SCRIPT>
     </head>
     <body>
     <?php
   // Paramètres de la Connexion à la base MYSQL
   $user="root";
   $host="localhost";
   $password="";
   $database="test";
   $connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");
 
   mysql_select_db($database,$connexion);
 
   $rq="Select * from script_categorie order by designation;";
   $result= mysql_query ($rq) or die ("Select impossible");
 
   ?>
     <FORM name="formulaire" action="page.php" method"get" onSubmit="javascript:menusubmit(formulaire.listselect[],formulaire.listunselect)">
     <table border="0" cellpadding="0" cellspacing="1" width="400" height="150" bgcolor="#808080" >
     <tr>
     <td height="120" width="200">
     <select name="listunselect" multiple width="200" size="10" OnDblClick="javascript:Deplacer(this.form.listunselect,this.form['listselect[]'])" style="width:180px;font:normal Trebuchet MS;font-size: 9px;">
     <?php
	while($var=mysql_fetch_array($result)){
	echo'<OPTION value="Planche"> '.$var["designation"].' </OPTION>
			' ;	
 
 
	}
 
	?>
     </select>
     </td>
     <td height="120" width="50" align="center">
     <input value="&nbsp;>&nbsp;" type="button" OnClick="javascript:Deplacer(this.form.listunselect,this.form['listselect[]'])"><br>
     <input value="&nbsp;<&nbsp;" type="button" OnClick="javascript:Deplacer(this.form['listselect[]'],this.form.listunselect)"><br>
     <input value=">>" type="button" OnClick="javascript:DeplacerTout(this.form.listunselect,this.form['listselect[]'])"><br>
     <input value="<<" type="button" OnClick="javascript:DeplacerTout(this.form['listselect[]'],this.form.listunselect)">
     </td>
     <td height="120" width="200">
     <select name="listselect[]" multiple size="10" width="200" ondblclick="Deplacer(this.form['listselect[]'],this.form.listunselect)" style="width:180px;font:normal Trebuchet MS;font-size: 9px;">
     <OPTION value="10">----------------------</OPTION>
     </select>
 
     </td>
     <td height="120" width="50" align="center">
     <input value="&nbsp;/\&nbsp;" type="button" onClick="javascript:menuswitch(this.form['listselect[]'], -1)"><br>
     <input value="&nbsp;\/&nbsp;" type="button" onClick="javascript:menuswitch(this.form['listselect[]'], 1)">
     </td>
     </tr>
     <tr>
     <td height="30" width="400" colspan= 4 align="center"><input name="bSave" type="submit" value="Valider" style="width:180px;font:normal Trebuchet MS;font-size: 9px;"></td>
     </tr>
     </table>
     <SCRIPT language="text/javascript">
     // création d'une ligne pour initialiser la largeur puis suppression par ce javascript
     document.formulaire['listselect[]'].options.length=0;
     </SCRIPT>
     </form>
    <?php
	foreach($listselect as $variable) {
echo $variable.'<br/>';
}
 
 
	?>
     </body>
 
     </html>

si tu test tu va voir que sur la 2 éme select ( le 2 éme blog) il y a toujours une ligne noire je comprends pas pourquoi elle apparait

pour le foraech j'arrive pas à la mettre en place je sais pas en faite ou je la met! je veux lorsque je clique sur le boutton valider le les variables s'affichent l'une après l'autre de cette façon:

Code :
1
2
3
4
5
6
1= la première variable de la selection
2= la deuxième variable
.
.
.
ect
merci encore pour ton aide
Chedi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 11h06   #6
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 757
Points : 4 757
Citation:
Envoyé par Chedi Voir le message
si tu test tu va voir que sur la 2 éme select ( le 2 éme blog) il y a toujours une ligne noire je comprends pas pourquoi elle apparait
oui mais j'ai signalé
Citation:
Pendant que l'on y est
- remplaces
Code :
<SCRIPT LANGUAGE="JavaScript">
par
Code :
<script type="text/javascript">
et NON par
Code :
<SCRIPT language="text/javascript">
la directive n'est pas reconnue donc non exécutée
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h15.


 
 
 
 
Partenaires

Hébergement Web