Précédent   Forum du club des développeurs et IT Pro > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/11/2012, 11h14   #1
-Eric-
Invité régulier
 
Inscription : février 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 13
Points : 6
Points : 6
Par défaut Comment mettre à jour Option Select dans un formulaire ?

Bonjour,

Via ce formulaire, je choisis une année et j'affiche les éléments correspondants sur la page.
Cela fonctionne correctement pour toutes les années sauf 2012, car je n'arrive pas à le sélectionner.

Donc comment rajouter dynamiquement "selected" et bien le positionner dans le menu déroulant ?
J'a testé avec
Code :
<?php if ( $options['anchoix] == 1 ) echo 'selected="selected"'; ?>
sans succès.

Code html :
1
2
3
4
5
6
7
8
9
10
<form id="annee" name=annee method="post" action="">
<script type="text/javascript">function refresh(input) { input.form.submit(); }</script>
<select name=anchoix onchange="this.form.submit()">
<option value="2012">2012</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
</select> 
</form>
-Eric- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 12h45   #2
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 654
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 654
Points : 7 534
Points : 7 534
Envoyer un message via Skype™ à jreaux62
Bonjour,
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script type="text/javascript">function refresh(input) { input.form.submit(); }</script>
<form id="annee" name="annee" method="post" action="">
	<select name="anchoix" onchange="this.form.submit()">
<?php 	// de cette année jusqu'à 4 ans de moins
		for($an_i=date('Y'); $an_i=(date('Y')-4); $an_i--)
		{
			// si cette année, ou année sélectionnée
			if( $an_i==date('Y') || (isset($options['anchoix']) && $options['anchoix'==$an_i) ) {
				$selected = ' selected="selected"';
			} else {
				$selected = '';
			}
?>
		<option value="<?php echo $an_i; ?>"<?php echo $selected; ?>><?php echo $an_i; ?></option>
<?php	} ?>
	</select> 
</form>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 15h50   #3
-Eric-
Invité régulier
 
Inscription : février 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 13
Points : 6
Points : 6
Bonjour et merci, mais après avoir corrigé la syntaxe, cela ne correspond pas trop à ce que j'attends.
-Eric- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 15h58   #4
Bovino
Responsable Développement Web

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

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

Informations forums :
Inscription : juin 2008
Messages : 18 091
Points : 64 604
Points : 64 604
Citation:
Cela fonctionne correctement pour toutes les années sauf 2012, car je n'arrive pas à le sélectionner.
Ben... c'est un peu normal : il est sélectionné par défaut, donc pour qu'il puisse générer un onchange, il faut d'abord sélectionner une autre option qui va du coup générer un onchange... et soumettre le formulaire

Code html :
1
2
3
4
5
6
7
8
9
10
11
<form id="annee" name=annee method="post" action="">
<script type="text/javascript">function refresh(input) { input.form.submit(); }</script>
<select name=anchoix onchange="this.form.submit()">
<option value="0">Sélectionner une année</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
</select> 
</form>
__________________
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 actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 16h04   #5
ska_root
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 182
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 43
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 182
Points : 1 784
Points : 1 784
Bonjour,

plusieurs erreurs, tu as oublié une quote dans la première bride de ton exemple, et les valeurs du select ne correspondent pas à ce que tu testes en php :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
<?php $anchoix=(isset($_REQUEST['anchoix']))?($_REQUEST['anchoix']):(0); ?>
<form id="annee" name="annee" method="post" action="">
<select name="anchoix" onchange="this.form.submit()">
<option value="1"<?php if($anchoix==1) echo ' selected="selected"'; ?>>2012</option>
<option value="2"<?php if($anchoix==2) echo ' selected="selected"'; ?>>2011</option>
<option value="3"<?php if($anchoix==3) echo ' selected="selected"'; ?>>2010</option>
<option value="4"<?php if($anchoix==4) echo ' selected="selected"'; ?>>2009</option>
<option value="5"<?php if($anchoix==5) echo ' selected="selected"'; ?>>2008</option>
</select> 
</form>
ou

Code :
1
2
3
4
5
6
7
8
9
10
11
 
<?php $anchoix=(isset($_REQUEST['anchoix']))?($_REQUEST['anchoix']):(0); ?>
<form id="annee" name="annee" method="post" action="">
<select name="anchoix" onchange="this.form.submit()">
<option value="2012"<?php if($anchoix=='2012') echo ' selected="selected"'; ?>>2012</option>
<option value="2011"<?php if($anchoix=='2011') echo ' selected="selected"'; ?>>2011</option>
<option value="2010"<?php if($anchoix=='2010') echo ' selected="selected"'; ?>>2010</option>
<option value="2009"<?php if($anchoix=='2009') echo ' selected="selected"'; ?>>2009</option>
<option value="2008"<?php if($anchoix=='2008') echo ' selected="selected"'; ?>>2008</option>
</select> 
</form>
bien sûr, ça demande à être optimisé, mais c'est pour l'explication de l'erreur...




[EDIT]
ah ouais, j'avais pas fait attention au onchange...

oui effectivement, le formulaire ne peut pas être envoyé dans le contexte de la premiere valeur sélectionnée... dans ce cas pourquoi ne pas afficher directement le résultat correspondant à cette année dès l'affichage ?
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 16h38   #6
-Eric-
Invité régulier
 
Inscription : février 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 13
Points : 6
Points : 6
Merci ska_root cela correspond presque à ce que je veux faire, sauf qu'au départ il ne m'affiche rien (il devrait afficher les enregistrements correspondants à 2012).

Après avoir sélectionné 2011, puis 2012 cela est OK.
Je cherche le pourquoi du mauvais positionnement du début.
-Eric- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 16h44   #7
ska_root
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 182
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 43
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 182
Points : 1 784
Points : 1 784
ben en fait, tu force l'execution de ton jeu de résultat dès l'affichage de la page avec une valeur par défaut (2012)

exemple:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<?php
$anchoix = (isset($_REQUEST['anchoix']))?($_REQUEST['anchoix']):('2012');
$resultats= fonctionQuiRameneDesResultats($anchoix);
?>
<form id="annee" name="annee" method="post" action="">
<select name="anchoix" onchange="this.form.submit()">
<option value="2012"<?php if($anchoix=='2012') echo ' selected="selected"'; ?>>2012</option>
<option value="2011"<?php if($anchoix=='2011') echo ' selected="selected"'; ?>>2011</option>
<option value="2010"<?php if($anchoix=='2010') echo ' selected="selected"'; ?>>2010</option>
<option value="2009"<?php if($anchoix=='2009') echo ' selected="selected"'; ?>>2009</option>
<option value="2008"<?php if($anchoix=='2008') echo ' selected="selected"'; ?>>2008</option>
</select> 
</form>
 
// affichage des resultats 
<p><?php echo $resultats; ?></p>
tu vois ?
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 17h03   #8
-Eric-
Invité régulier
 
Inscription : février 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 13
Points : 6
Points : 6
Oh oui, je vois que j'ai besoin d'aller me reposer...
Merci encore.
-Eric- est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h58.


 
 
 
 
Partenaires

Hébergement Web