Bonjour,
Je suis confronté à un soucis concernant la récupération d'un "selected" après envoie par "header location".
Soit le rewriting suivant :
Le code de page1.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part RewriteRule ^tout/([^/]+)/?$ page1.php?a=$1 [QSA]
Dans le code actuel, si la page se recharge dut à l'action du "onchange", mon "selected" fonctionne. Si je valide, je perd ma sélection et c'est normal.
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 <?php //L'information contient des lettres minuscules et/ou des tirets if(isset($_GET['a']) && !empty($_GET['a'])) { //J'utilise une fonction qui récupère le numéro id $categorie = fonction_id($_GET['a']); //Le formulaire est envoyé if(isset($_POST["envoyer"])){ $teste1 = $_POST["titi"]; if($teste1==0){ echo 'Faites un choix dans titi'; } else{ $url= ''.$teste1.'/'; header('Location: http://www.example.com/tout/'.$url); exit(); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr"> <body> <form name="toto" action="<?php echo 'http://'.$_SERVER["SERVER_NAME"].''.$_SERVER["REQUEST_URI"].'';?>" method="post"> <select name="titi" onchange="javascript:submit(this)"> <option value="0">Choisissez</option> <option value="1" <?php if($teste1==1){echo "selected='selected'";}?>>a</option> <option value="2" <?php if($teste1==2){echo "selected='selected'";}?>>b</option> <option value="3" <?php if($teste1==3){echo "selected='selected'";}?>>c</option> </select> <input name="envoyer" value="envoyer" type="submit"/> </form> </body> </html> <?php //on ferme isset($_GET['a'] } ?>
J'ai donc modifié les "selected" de cette façon :
Dans cette configuration, si je sélectionne les options dans l'ordre croissant (a, b, c) en validant à chaque fois, je garde ma sélection.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 .... <option value="1" <?php if($teste1==1){ echo "selected='selected'"; } else if($teste1==$categorie){ echo "selected='selected'"; } ?>>a</option> ....
Par contre, si je sélectionne l'option (c), que je valide et que je veuille re sélectionner soit l'option (a ou b), mon "selected" reste coincé sur l'option (c).
En gros, je ne peux jamais remonter dans la liste ... Pourquoi ??
Merci
Partager