Page 1 sur 1

recuperer la valeur ainsi que le texte d'un formulaire select php

Posté : 27 déc. 2015, 19:18
par ewen
Bonjour, je souhaite récupérer la valeur numérique de mon formulaire select ainsi que le texte qui y est approprié

merci d'avance , je galère
if(isset($_POST['couleur']))
     {
           echo htmlentities($_POST['couleur']);
     }
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Document sans nom</title>





<form action="traitement.php" method="post">
<p>
<select name="couleur">
     
     <option value="1" selected="selected">Couleur verte</option>
     <option value="2">Couleur bleue</option>
     <option value="3">Couleur rouge</option>
     <option value="4">Couleur violet</option>
     <option value="5">Couleur jaune</option>
     <option value="6">Couleur rose</option>
     <option value="7">Couleur verte</option>
     <option value="8">Couleur marron</option>
     <option value="9">Couleur noir</option>
     
     
     
</select></p>
<p><input type="submit" value="Envoyer" /></p>
</form>

Re: recuperer la valeur ainsi que le texte d'un formulaire select php

Posté : 28 déc. 2015, 00:31
par @rthur
Bonjour,

Avec un <select>, tu ne va récupérer que ce qui est dans value et donc pas le texte associé.
2 possibilités :
- soit tu fais un tableau en PHP qui fait la correspondance entre tes ID et leur libellé, et donc quand tu reçoit l'ID en $_POST, tu peux retrouver le libellé
- soit tu ajoute le libellé dans value avec un séparateur, par exemple |, et dans ton traitement PHP, tu fais un explode() sur le caractère | pour récupérer les 2 infos.

Ma préférence va à la 1ère solution car elle est + sécurisée vu que le libellé sera dans ton script et non pas fourni par l'utilisateur (et donc potentiellement modifiable donc il faudra le filtrer)

Re: recuperer la valeur ainsi que le texte d'un formulaire select php

Posté : 28 déc. 2015, 07:07
par ewen
pourrais tu me montrer comment faire avec ta 1° solution ? SVP

Re: recuperer la valeur ainsi que le texte d'un formulaire select php

Posté : 28 déc. 2015, 10:52
par @rthur
pourrais tu me montrer comment faire avec ta 1° solution ? SVP
Je préfère t'aider pour que tu le fasses toi même, comme ça tu sauras le refaire. :D
Voici la page de la doc avec des exemples pour faire des tableaux : http://php.net/manual/fr/language.types.array.php

Essaye de faire quelque chose et si ça ne marche pas, dis nous où ça bloque.

Re: recuperer la valeur ainsi que le texte d'un formulaire select php

Posté : 29 déc. 2015, 12:10
par ewen
j'ai crée un tableau mais je n'arrive toujours pas à récupérer la clef et la valeur texte merci




$resumes =array(1=>'Couleur verte','Couleur bleue', 'Couleur rouge','Couleur violet','Couleur jaune','Couleur rose','Couleur verte','Couleur marron','Couleur noir');
 
     if(isset($_POST['resumes']))
     {
           echo htmlentities($_POST['resumes']);
     }
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Document sans nom</title>





<form method="post" action="" name="formulaire">
<select name="resumes" id="resumes">
<?php foreach($resumes as $id => $resume): ?>
<option><?php  $id ?><?php echo $resume ?></option>
<?php endforeach ?>
</select>
<input type="submit" name="envoyer"/>

Re: recuperer la valeur ainsi que le texte d'un formulaire select php

Posté : 29 déc. 2015, 12:50
par @rthur
Ton <select> renvoie donc la valeur de la clé (=l'index) de ton tableau avec les libellés.

Donc si tu appelles ton tableau en lui passant la clé récupérée, ça devrait t'afficher le libellé correspondant :
print $resumes[$_POST['resumes']];
Par contre si je peux me permettre une remarque ce n'est pas très malin d'appeler de la même façon la variable qui contient l'id que tu reçois en $_POST et ton tableau qui contient les libellés.
Ça fonctionne, mais c'est moyennement clair quand tu va relire ton code plus tard.

Re: recuperer la valeur ainsi que le texte d'un formulaire select php

Posté : 29 déc. 2015, 17:22
par ewen
pourrais tu être plus explicite svp

Re: recuperer la valeur ainsi que le texte d'un formulaire select php

Posté : 29 déc. 2015, 20:44
par @rthur
pourrais tu être plus explicite svp
Euh bah si tu as lu le tutoriel de la doc sur les tableaux que je t'ai donné plus haut + ce que je t'ai dit, je vois mal ce que je peux te dire de plus.

As-toi de me dire ce que tu ne comprends pas, ce que tu as essayé et les messages d'erreurs éventuellement rencontrés.


Si ta question c'est "est-ce que tu peux le faire à ma place ?", la réponse est non, désolé.

Re: recuperer la valeur ainsi que le texte d'un formulaire select php

Posté : 29 déc. 2015, 22:42
par or 1
tiens, j'ai plutôt l'impression qu'en disant
print $resumes[$_POST['resumes']];
tu l'as bien donné la solution ;-)

Re: recuperer la valeur ainsi que le texte d'un formulaire select php

Posté : 30 déc. 2015, 19:38
par ewen
j'ai réussi à part un problème au démarrage de la page où il me marque :

Notice: Undefined index: couleurs in /Applications/MAMP/htdocs/essaiformulaire/traitementcouleur.php on line 12

Notice: Undefined index: couleurs in /Applications/MAMP/htdocs/essaiformulaire/traitementcouleur.php on line 13

Notice: Undefined index: in /Applications/MAMP/htdocs/essaiformulaire/traitementcouleur.php on line 13
<?php
$couleurs =array('Couleur verte','Couleur bleue', 'Couleur rouge','Couleur violet','Couleur jaune','Couleur rose','Couleur verte','Couleur marron','Couleur noir');
  

 if(isset($_POST['couleurs']))
{
	echo ($_POST['couleurs']);
	
	echo $couleurs[$_POST['couleurs']];
}

$clef = $_POST['couleurs'];
$valeur = $couleurs[$_POST['couleurs']];
?>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Document sans nom</title>
<body>




<form method="post" action="" name="formulaire">
 <select name="couleurs">
<option value="">entrez la valeur</option>
<?php
foreach($couleurs as $key => $couleur):
echo '<option value="'.$key.'">'.$couleur.'</option>'; //close your tags!!
endforeach;
?>
</select>
<p><input type="submit" name"envoyer"></p>
<?php 






echo 'la clef est ' . $clef .' et la valeur est '. $valeur;

 ?>
</body>
</html>

Re: recuperer la valeur ainsi que le texte d'un formulaire select php

Posté : 30 déc. 2015, 19:48
par @rthur
Le message d'erreur est plutôt explicite.
Notice: Undefined index: couleurs in /Applications/MAMP/htdocs/essaiformulaire/traitementcouleur.php on line 12
D'abord, il faut identifier où se situe le problème.
Là c'est clair, c'est dans le fichier traitementcouleur.php à la ligne 12
C'est donc la ligne suivante qui pose problème :
$clef = $_POST['couleurs'];
Et le problème est "Undefined index: couleurs"
Dit autrement : "couleurs" n'existe pas dans $_POST

Il faut donc que tu testes l'existence de $_POST['couleurs'] avant de l'appeler pour la mettre dans $clef

Re: recuperer la valeur ainsi que le texte d'un formulaire select php

Posté : 31 déc. 2015, 10:53
par ewen
merci beaucoup , bonne année à toi et à tous les membres de ce superbe site internet