Afficher la valeur de mon select lors de validation du formulaire

Mammouth du PHP | 643 Messages

10 mars 2016, 08:22

Salut à tous.
J'arrange un peu mon code et je me tourne vers vous car j'ai un ptit soucis

Je n'arrive pas à faire affiché la valeur de la selection de mon select lors de la soumission du formulaire.
J'ai donc mon select en lui même:
<select name="loisir" id="loisir" class="selectpicker max">
<option value=""> Toutes les sorties</option
><?php
asort($aLoisirs);
foreach($aLoisirs as $k => $v) {
$selected = !empty($_REQUEST['loisir']) && ($_REQUEST['loisir'] == $k) ? ' selected="selected"' : NULL;
echo '<option value="'.$k.'"'.$selected.'>'.$v.'</option>'."\n";
}
?>
</select>

Et mes requetes à coté:
$sql .= !empty($_REQUEST['loisir']) ? ' AND `loisirs`.`genre_loisir` = "'.$_GET['loisir'].'"' : NULL; //  $_GET['loisir'] correspond à "couture" par exemple
Donc le but est de parcourcir mon array afin d'afficher le choix à l'utilisateur puis de garder en gros son choix....
Merci pour le coup de main :wink:

Mammouth du PHP | 1967 Messages

10 mars 2016, 09:10

Tu es sur de devoir utiliser GET ??
Tu utilise REQUEST le reste du temps, mais un formulaire est plus souvent transfèrer en POST.
Je pense que si tu reste constant avec REQUEST cela à plus de chance de fonctionner
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

10 mars 2016, 15:00

Bonjour,

Ce n'est pas très clair... tu veux ré-afficher la valeur envoyée par le formulaire (auquel cas il faut effectivement t'assurer que celui-ci est envoyé en get et non en post), ou est-ce que c'est l'information envoyée en base qui n'est pas bonne ? ou encore est-ce l'information enregistrée en base que tu veux ré-afficher dans ton formulaire ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 643 Messages

10 mars 2016, 16:41

Salut à vous.
Donc en fait si vous voulez j'ai quelque chose de fonctionnel mais je cherche à améliorer afin d'avoir une belle url.
Actuellement tout marche très bien lorsque j'ai une url du type:

http://monsite.fr/toutes-les-sorties-10.html
Je cherche à remplacer le 10 par sa valeur soit par exemple "couture"

Donc j'ai pour cela de l'url rewriting avec mon htaccess.
RewriteRule ^toutes-les-sorties-([A-Za-z0-9_-]+).html$ sortie.php?loisir=$1
RewriteRule ^toutes-les-sorties.html sortie.php
#RewriteRule ^([A-Za-z0-9_-]+).html$ $1.php
J'ai ma requete ( j'ai mis les 2 essai de requete la premiere renvoi le numéro la deuxième le type par exemple couture )
$sql .= !empty($_REQUEST['loisir']) ? ' AND `loisirs`.`id_type_loisirs` = "'.$_REQUEST['loisir'].'"' : NULL; // ca nous renvoi le numéro de loisir soit "10" par exemple
	//$sql .= !empty($_REQUEST['loisir']) ? '  AND `loisirs`.`genre_loisir`= "'.$_GET['loisir'].'"' : NULL; // ca nous renvoi la valeur en bdd soit par exemple "couture"
En ensuite mon formulaire donc ou on peut selectionner le loisir:
<div class="col-md-3 col-sm-3 max">
<select name="loisir" id="loisir" class="selectpicker max">
<option value=""> Toutes les sorties</option
><?php
asort($aLoisirs);
foreach($aLoisirs as $k => $v) {
$selected = !empty($_REQUEST['loisir']) && ($_REQUEST['loisir'] == $k) ? ' selected="selected"' : NULL;
echo '<option value="'.$k.'"'.$selected.'>'.$v.'</option>'."\n";
}
?>
</select>
<?php echo !empty($region) ? '<input type="hidden" name="region" value="'.$region.'" />' : NULL; ?>
</div>
L'ensemble du code ci-dessus est fonctionnel pour les url ca filtre bien et tt du moment que l'url ressemble à
http://monsite.fr/toutes-les-sorties-10.html je cherche à faire en sorte que ça marche pour http://monsite.fr/toutes-les-sorties-couture.html

Merci à vous