IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Récupérer dans une variable la valeur sélectionnée dans un select


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    779
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 779
    Points : 178
    Points
    178
    Par défaut Récupérer dans une variable la valeur sélectionnée dans un select
    Bonsoir à tous.

    Avant de d'ouvrir cette discussion j'ai essayé plusieurs scripts glanés sur plusieurs forums sans résultats notamment :
    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
    <form action="#" method="post">
    	<select multiple name="prenom1[]">
    		<option name="prenom1[] "value="adriana">Adriana</option>
    		<option name="prenom1[]" value="alessandra">Alessandra</option>
    		<option name="prenom1[]" value="candice">Candice</option>
    		<option name="prenom1[]" value="lili">Lili</option>
    	</select><br>
    	<input type="submit" style="margin-left:25px; margin-top:5px" value="OK" />
    </form>
    <!--Si l'utilisateur sélectionne Candice, cet exemple va afficher : Prénom sélectionné Candice-->
    <?php
    if(!$_POST['prenom1']){
    	echo 'Prenom sélectionné = '.$_POST['prenom1'];
    }else{
    	 echo "Aucune option n'a été sélectionnée <br>";
    }
    La récupération de la variable $_POST['prenom1'] ne fonctionne pas.

    Je suis à cours d'idées.

    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    afficher le contenu de "$_POST['prenom1']" avec "var_dump" par exemple.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    779
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 779
    Points : 178
    Points
    178
    Par défaut
    Echo envoyé : Aucune option n'a été sélectionnée

    Affichage de var_dump($_POST);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    array (size=1)
      'prenom1' => 
        array (size=1)
          0 => string 'candice' (length=7)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    $_POST['prenom1'] est un array.
    On ne peut pas l'afficher avec echo, mais avec var_dump( par exemple)

    Et pour lister :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach( $_POST['prenom1'] as $ii => $prenom1 )
    {
       echo 'prénom '.$ii.' : '.$prenom1.'<br />';
    }
    [EDIT] Et le name ne se met que sur le <select> :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	<select multiple name="prenom1[]">
    		<option value="adriana">Adriana</option>
    		<option value="alessandra">Alessandra</option>
    		<option value="candice">Candice</option>
    		<option value="lili">Lili</option>
    	</select>

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    779
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 779
    Points : 178
    Points
    178
    Par défaut
    Bonjour à tous et en particulier à jreaux62

    Un grand merci pour votre juste réponse et toujours aussi rapide.

    Effectivement je viens de tester, ça fonctionne parfaitement.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    779
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 779
    Points : 178
    Points
    178
    Par défaut
    Re bonjour à tous.

    En fait mon objectif, c'est d'insérer une colonne après une colonne existante dans la bdd en fonction de la sélection du nom de la colonne dans une liste déroulante.
    Voici mon
    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
    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
    <body>
    	<?php
    	$rows = $bdd->query("describe adherents");
    	?>
    	<fieldset><legend>Insérer une colonne dans la BDD après la colonne choisie</legend>
    		<form name="ajout_champ_bdd" method="post" action="#">
    			<select name="test[]" style="width:130px" >
    				<option>Selectionner ...</option>
    				<?php
    				while ($row = $rows->fetch()){
    					print $row['Field'] . '<br>';
    					echo '<option value="$row[]"</option>';
    				}
    				?>
    			</select>		
    			Saisir nom de la nouvelle colonne ><input type="text" name="nom_new_col_bdd" style="width:130px; margin-left:5px" />
    			<input type="submit" name="ajout_col_bdd" value="Ajout colonne à la bdd" style="width:130px; margin-left:0px" /><br> 
    		</form>
     
    		<div style="margin-left:25px">
    		<?php
    		if(isset($_POST['test'])) {
    			foreach( $_POST['test'] as $ii => $test )
    			{
    				$varselect = $test;
    				echo 'Le nom de colonne '.$varselect.' a été sélectionné <br>';
    			}
    		}else{
    		   echo "Aucune option n'a été sélectionnée <br>";
    		}	
    		?>
    		</div>
    		<?php
     
    		// récupération des variables POST: 
    		$varnewcol=isset($_POST['nom_new_col_bdd'])?$_POST['nom_new_col_bdd']:'';
     
    		if (isset($_POST['ajout_col_bdd'])) {
    			$sql= "SHOW COLUMNS FROM adherents LIKE '$varnewcol'";
    			$result = $bdd->query($sql);
    			if($result->rowCount() > 0) {
    				echo '<script>alert("La colonne \"'.$varnewcol.'\" existe, saisir un autre nom !");</script>';
    			} else {
    				$req=$bdd->query('ALTER TABLE adherents ADD '.$varnewcol.' TEXT NOT NULL AFTER '.$varselect);//fonctionne pas
    				echo '<script>alert("La colonne \"'.$varnewcol.'\" a été ajouté à la bdd");</script>';
    			}
    		}
    		?>
    	</fieldset>	
    </body>
    Les options dans ce cas sont construites dans la boucle while et la récupération de la variable $varselect ne fonctionne pas pour l'utiliser avec AFTER.

    Je ne vois vraiment pas comment procéder !

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    779
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 779
    Points : 178
    Points
    178
    Par défaut
    Bonjour.

    J'avais noté trop hâtivement la discussion comme résolue.

    Petite remarque : j'ai débuter en PHP récemment, j'ai acquis de l'expérience et j'ai très bien progressé grâce à ce forum que je remercie.

    Donc je reformule ma question : comment récupérer dans une variable la valeur sélectionnée dans un select lorsque les options sont construites dans la boucle while.

    Dans ce cas c'est aussi un array ??

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    					print $row['Field'] . '<br>';
    					echo '<option value="$row[]"</option>';
    As-tu regardé le code HTML généré ?

    2-
    mon objectif, c'est d'insérer une colonne après une colonne existante dans la bdd en fonction de la sélection du nom de la colonne dans une liste déroulante
    OK.
    Alors, pourquoi faire un select multiple ??

    Enlève l'attribut "multiple" au select et les crochets [], et tu récupèreras une variable (pas un array)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <select name="test" style="width:130px">
    ....
    Et au passage... : au lieu de mettre des noms de variables "bidon" ("test", "varselect",... !), mets des noms plus clairs et explicites. Ca t'éviteras des soucis...

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    779
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 779
    Points : 178
    Points
    178
    Par défaut
    C'est vrai que le choix des noms de variables n'est pas très judicieux

    Par contre j'ai enlevé l'attribut "multiple" au select et les crochets [] du code dixit post #6.

    Voici l'affichage de var_dump($_POST);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Warning: Invalid argument supplied for foreach() in C:\wamp64\www\adherents\ajout champ table_web_3.php on line 35
     
    Array ( [test] => $row[] [nom_new_col_bdd] => adresse [ajout_col_bdd] => Ajout colonne à la bdd )
     
    C:\wamp64\www\adherents\ajout champ table_web_3.php:47:
    array (size=3)
      'test' => string '$row[]' (length=6)
      'nom_new_col_bdd' => string 'adresse' (length=7)
      'ajout_col_bdd' => string 'Ajout colonne à la bdd' (length=23)
     
    Notice: Undefined variable: varselect in C:\wamp64\www\adherents\ajout champ table_web_3.php on line 58

  10. #10
    Invité
    Invité(e)
    Par défaut
    Normal.

    Réfléchis encore...
    (indice : on ne traite pas une variable comme un array)


    Et corrige le select : tu vois bien que tu ne récupères pas ce qu'il faut.

Discussions similaires

  1. [V7] Récupérer la valeur d'un champ selection dans un email
    Par jmbinformatique dans le forum Odoo (ex-OpenERP)
    Réponses: 0
    Dernier message: 04/03/2015, 15h46
  2. Réponses: 7
    Dernier message: 03/10/2012, 14h51
  3. Récupérer la valeur sélectionnée dans un <select>
    Par Goupo dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 26/06/2009, 10h31
  4. Réponses: 3
    Dernier message: 25/04/2008, 11h25
  5. Réponses: 11
    Dernier message: 21/08/2007, 09h57

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