p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Invité régulier
    Inscrit en
    février 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : février 2007
    Messages : 14
    Points : 7
    Points
    7

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php if ( $options['anchoix] == 1 ) echo 'selected="selected"'; ?>
    sans succès.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  2. #2
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    6 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : août 2008
    Messages : 6 419
    Points : 12 367
    Points
    12 367

    Par défaut

    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire arrivent aisément."
    Nicolas Boileau-Despréaux (1636-1711).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  3. #3
    Invité régulier
    Inscrit en
    février 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : février 2007
    Messages : 14
    Points : 7
    Points
    7

    Par défaut

    Bonjour et merci, mais après avoir corrigé la syntaxe, cela ne correspond pas trop à ce que j'attends.

  4. #4
    Responsable Développement Web


    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    juin 2008
    Messages
    23 788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : juin 2008
    Messages : 23 788
    Points : 92 277
    Points
    92 277
    Billets dans le blog
    20

    Par défaut

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2005
    Messages
    1 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : août 2005
    Messages : 1 182
    Points : 1 669
    Points
    1 669

    Par défaut

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

  6. #6
    Invité régulier
    Inscrit en
    février 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : février 2007
    Messages : 14
    Points : 7
    Points
    7

    Par défaut

    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.

  7. #7
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2005
    Messages
    1 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : août 2005
    Messages : 1 182
    Points : 1 669
    Points
    1 669

    Par défaut

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

  8. #8
    Invité régulier
    Inscrit en
    février 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : février 2007
    Messages : 14
    Points : 7
    Points
    7

    Par défaut

    Oh oui, je vois que j'ai besoin d'aller me reposer...
    Merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mettre a jour les données dans un formulaire
    Par benjiprog dans le forum VBA Access
    Réponses: 5
    Dernier message: 17/08/2007, 11h41
  2. Mettre un champ selected dans un formulaire de type select
    Par bl4ckwolf dans le forum PHP & MySQL
    Réponses: 3
    Dernier message: 19/07/2007, 16h11
  3. Réponses: 1
    Dernier message: 25/09/2006, 09h52
  4. Mettre à jour des champs dans un sous formulaire
    Par Patros dans le forum Access
    Réponses: 3
    Dernier message: 09/08/2006, 15h16
  5. [Conception] mettre à jour un Select Option via BDD
    Par Skeud007 dans le forum PHP & SGBD
    Réponses: 5
    Dernier message: 08/06/2006, 22h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo