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 29/06/2011, 18h13   #1
Membre du Club
 
Homme
Analyse système
Inscription : mars 2011
Messages : 406
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Analyse système

Informations forums :
Inscription : mars 2011
Messages : 406
Points : 67
Points : 67
Par défaut syntaxe recuperation de valeur de select

Bonjour,
j'ai mis un code de ce genre mais s'amarche pas :
Code :
1
2
3
4
<select name="liste" onchange="alert(document.getElementById('liste').options[document.getElementById('liste').selectedIndex].text);">
 <option >toto</option>
 <option >tutu</option>
</select>
pour récupérer la valeur selectionner !!!!merci d'avance
benhsaien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 18h16   #2
Membre expérimenté
 
Duke Jikel
Inscription : mai 2010
Messages : 340
Détails du profil
Informations personnelles :
Nom : Duke Jikel

Informations forums :
Inscription : mai 2010
Messages : 340
Points : 548
Points : 548
Citation:
Envoyé par benhsaien Voir le message
Bonjour,
j'ai mis un code de ce genre mais s'amarche pas :
Code :
1
2
3
4
<select name="liste" onchange="alert(document.getElementById('liste').options[document.getElementById('liste').selectedIndex].text);">
 <option >toto</option>
 <option >tutu</option>
</select>
pour récupérer la valeur selectionner !!!!merci d'avance
document.getElementById veut dire : par l'id, donc si tu mets un "name" normal que ça ne fonctionne pas, il faut mettre un id.

Et accessoirement pourquoi ne pas utiliser this dans ton cas car tu as directement l'élément dans this.
Code :
1
2
3
4
<select name="liste" onchange="var opt = this.options[this.selectedIndex]; alert(opt.innerText || opt.textContent);">
 <option >toto</option>
 <option >tutu</option>
</select>
Petite remarque tu feras mieux d'utiliser "value", cela est mieux si tu utilises un select.
dukej est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 18h35   #3
Membre du Club
 
Homme
Analyse système
Inscription : mars 2011
Messages : 406
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Analyse système

Informations forums :
Inscription : mars 2011
Messages : 406
Points : 67
Points : 67
Bonjour;
merci s'amarche mais est t'il possible de faire :
Code :
1
2
3
4
5
6
7
8
9
<select name="liste" onchange="var opt = this.options[this.selectedIndex]; ">
 <option >toto</option>
 <option >tutu</option>
</select>
 
<?php
$b="<script lanaguage='javascript'>document.write(opt);</script>";
echo $b;
?>
car je veux récupérer la valeur et l'etuliser.je sais que php coté serveur et javascript coté client ????

ou du genre :
Code :
1
2
3
4
5
6
<select name="liste" onchange="var opt = this.options[this.selectedIndex]; <?php  $a="<script lanaguage='javascript'>document.write(opt.innerText || opt.textContent);</script>" ?>">
 <option >toto</option>
 <option >tutu</option>
</select>
 
<?php echo $a; ?>
benhsaien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 20h32   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Citation:
Envoyé par dukej
Petite remarque tu feras mieux d'utiliser "value", cela est mieux si tu utilises un select.
+1
Ce qui te permettrais en plus de simplifier la syntaxe :
Code :
onchange="var opt = this.value;"
Citation:
Envoyé par benhsaien
Bonjour;
merci s'amarche mais est t'il possible de faire :
Code :
1
2
3
4
5
6
7
8
9
<select name="liste" onchange="var opt = this.options[this.selectedIndex]; ">
 <option >toto</option>
 <option >tutu</option>
</select>
 
<?php
$b="<script lanaguage='javascript'>document.write(opt);</script>";
echo $b;
?>
car je veux récupérer la valeur et l'etuliser.je sais que php coté serveur et javascript coté client ????
Ca pourrait être possible car ton script est appelé après ta balise, donc si opt est défini lorsque le script est interprété, c'est bon.
Ceci dit, ça ne marchera pas pour deux raisons : tu initialises opt sur le onchange, donc il n'existera pas au moment où le write sera interpété et surtout, tel que tu le définis, opt est un objet HTML qui ne possède donc pas de méthode toString() et ne peut donc pas être utilisé dans write().
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 22h09   #5
Membre du Club
 
Homme
Analyse système
Inscription : mars 2011
Messages : 406
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Analyse système

Informations forums :
Inscription : mars 2011
Messages : 406
Points : 67
Points : 67
Bonjour.
j"ai décider de récupérer la valeur directement mais s'amarche pas:
Code :
1
2
3
4
5
6
7
8
<select name="liste" onchange="var opt = this.options[this.selectedIndex]">
 <option >toto</option>
 <option >tutu</option>
 
</select>
 <script language="javascript">
document.write(opt);
</script>
benhsaien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 22h36   #6
Membre expérimenté
 
Duke Jikel
Inscription : mai 2010
Messages : 340
Détails du profil
Informations personnelles :
Nom : Duke Jikel

Informations forums :
Inscription : mai 2010
Messages : 340
Points : 548
Points : 548
Citation:
Envoyé par Bovino Voir le message
+1
Ce qui te permettrais en plus de simplifier la syntaxe :
Code :
onchange="var opt = this.value;"
Ca pourrait être possible car ton script est appelé après ta balise, donc si opt est défini lorsque le script est interprété, c'est bon.
Ceci dit, ça ne marchera pas pour deux raisons : tu initialises opt sur le onchange, donc il n'existera pas au moment où le write sera interpété et surtout, tel que tu le définis, opt est un objet HTML qui ne possède donc pas de méthode toString() et ne peut donc pas être utilisé dans write().
Tu devrais surtout lui dire qu'il est totalement impossible de setter une variable PHP de la manière qu'il le fait
dukej est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 23h19   #7
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Allez ! Dernière mise à jour de cet exemple de code... marqué pourtant résolu.

Ajout de la fonction show_Selection() et d'un conteneur ayant l'identifiant 'text' déstiné à reçevoir le texte de l'option sélectionnée...

Code html :
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
<script type="text/javascript">//<![CDATA[
 
	// Objet global
	var trace={value:'',text:''};
 
	// Gestion des cookies
	function createCookie(name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	}
	function readCookie(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	}
	function eraseCookie(name) {
		createCookie(name,"",-1);
	}
 
	// Affiche les informations de l'option choisie
	function show_Selection(){
		var txt;
		if(trace.value)
			txt='&lt;option value="<strong>'+trace.value+'</strong>"&gt;<strong>'+trace.text+'</strong>&lt;option&gt;';
		else
			txt='Aucune option sélectionnée';
 
		document.getElementById('text').innerHTML=txt;
	}
 
	// Mise à jour de l'objet trace
	function update_Selection(){
		trace.text='';
		trace.value=document.getElementById('list').value;
		if(trace.value){
			createCookie('selectedValue',trace.value);
			trace.text=document.getElementById('list').options[trace.value].text;
		}else
			eraseCookie('selectedValue');
 
		// Affiche nouvelles infos
		show_Selection();
	}
 
	// Initialise l'objet trace une fois le document chargé
	function init_Selection(){
		trace.text='';
		trace.value=readCookie('selectedValue');
		if(trace.value){
			document.getElementById('list').options[trace.value].selected=true;
			trace.text=document.getElementById('list').options[trace.value].text;
		}
		// Affiche nouvelles infos
		show_Selection();
	}
 
	window.onload=init_Selection;
//]]>
</script>
</head>
<body>
<form action="#" method="get">
	<p>
		<label for="list">Votre sélection :</label>
		<select name="list" id="list" onchange="update_Selection();">
			<option value="" selected="selected">Choisissez un élément</option>
			<option value="1">Air</option>
			<option value="2">Eau</option>
			<option value="3">Terre</option>
			<option value="4">Feu</option>
		</select>
	</p>
</form>
<p>Vous avez sélectionné : <span id="text">&#160;</span></p>
</body>
</html>
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 23h19   #8
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Citation:
Envoyé par dukej
Tu devrais surtout lui dire qu'il est totalement impossible de setter une variable PHP de la manière qu'il le fait


Tu crois vraiment que la ligne
Code php :
$b="<script lanaguage='javascript'>document.write(opt);</script>";
signifie pour lui que $b vaudra opt ???

J'avoue que je n'avais pas envisagé un truc aussi... optimiste

Bref, benhsaien, comprends bien que tu ne peux pas utiliser au chargement de la page un choix que l'utilisateur n'a pas encore fait !
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 01h34   #9
Membre du Club
 
Homme
Analyse système
Inscription : mars 2011
Messages : 406
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Analyse système

Informations forums :
Inscription : mars 2011
Messages : 406
Points : 67
Points : 67
Bonjour,
tous s'amarche bien j'ai combiner vos réponse pour a la fin créé ce code mais il reste que la variable trace soit déclarer GLOBAL ou....pour que je puisse acceder????

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
<head>
</head>
<body>
	<p>
		<label for="list">Votre sélection :</label>
		<select name="list" id="list" onchange="update_Selection(this.options[this.selectedIndex]);">
			<option value="" selected="selected">Choisissez un élément</option>
			<option value="1">Air</option>
			<option value="2">Eau</option>
			<option value="3">Terre</option>
			<option value="4">Feu</option>
		</select>
	</p>
</body>
</html>
 
<script type="text/javascript">//<![CDATA[
function update_Selection(a){
 trace=a.innerText;
	}
</script>
 
<script type="text/javascript">
document.write(trace);
</script>
benhsaien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 03h31   #10
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
J'ai édité le code plus haut. Je pense qu'il est propre.

Je te laisse l'étudier
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 14h57   #11
Membre du Club
 
Homme
Analyse système
Inscription : mars 2011
Messages : 406
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Analyse système

Informations forums :
Inscription : mars 2011
Messages : 406
Points : 67
Points : 67
merci a vous tous
Code :
<select name="list" id="list" onchange="document.location.href='module_missionaire/edit?id="<?php $missionaire->getMissionaire()->get->getIdmissionaire; ?>"&etat='.this.options[this.selectedIndex].innerText;'">
benhsaien 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 03h32.


 
 
 
 
Partenaires

Hébergement Web