Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 8 sur 8
  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 :
    <?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>

  2. #2
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro Jérôme Réaux
    Webdesigner
    Inscrit en
    août 2008
    Messages
    5 374
    Détails du profil
    Informations personnelles :
    Nom : Homme Jérôme Réaux
    Âge : 47
    Localisation : Nouvelle-Calédonie

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

    Informations forums :
    Inscription : août 2008
    Messages : 5 374
    Points : 10 320
    Points
    10 320

    Par défaut

    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>
    "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 Didier Mouronval
    Développeur Web
    Inscrit en
    juin 2008
    Messages
    22 171
    Détails du profil
    Informations personnelles :
    Nom : Homme Didier Mouronval
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : juin 2008
    Messages : 22 171
    Points : 86 178
    Points
    86 178

    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 :
    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 : 45
    Localisation : France

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

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

    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 :
    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...

  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 : 45
    Localisation : France

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

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

    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 :
    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •