Page 1 sur 1

garder la valeur d'un select après le submit

Posté : 25 févr. 2007, 14:50
par gesualda
Bonjour à tous,

j'ai un tout petit soucis dans l'utilisation d'un "select" après le submit du formulaire et dont je voudrais que la valeur selectionée reste afficher après le clic sur le submit:

voici le code:
<?php $mem_asso  = array('Choisir..','Pr&eacute;sident','Vice-Pr&eacute;sident','Secr&eacute;taire','Tr&eacute;sorier','Membre','Autre'); ?>

<form method="post" action="#">
<label for="assoc">Si oui, quelle fonction occupez vous ?</label>		
<select name="assoc" id="assoc" onBlur="this.className='normal';" onFocus="this.className='focus'; assoc.value='';" tabindex="4">
<?php 
	$titre = isset($_POST['assoc']) ? $_POST['assoc'] : "";						
		$cnt = count($mem_asso); 
			for($i=0; $i<$cnt; $i++){							
				$selected = $titre == $mem_asso[$i] ? " selected = \"selected\"" : null;
		echo "<option value=\"". $mem_asso[$i] ."\"". $selected .">". $mem_asso[$i] ."</option>\n";
		
		}				
?>
</select>	
<input name="send" type="submit" value="Envoyer vos donn&eacute;es">
</form>

//Affichage valeur selectionner
<pre>
 <?php print_r($_POST); ?> 
 </pre>
A la l'affichage la valeur est bien trouvée, mais les options se replace sur la première position, en l'occurence "choisir.."

Pourtant la syntaxe est correct, pourriez vous m'éclairer?? Merci :oops: :oops:

Posté : 25 févr. 2007, 15:00
par Cyrano

Posté : 25 févr. 2007, 15:25
par gesualda
Salut Cyrano,


Tout d'abord merci de la réponse, mais apparement l'erreur se situe ici:
<?php $mem_asso  = array('Choisir..','Pr&eacute;sident','Vice-Pr&eacute;sident','Secr&eacute;taire','Tr&eacute;sorier','Membre','Autre'); ?>
Suite à l'utilisation de caractère spéciaux, car si je remplace les caractères par:
$mem_asso  = array('Choisir..','un','deux','trois','quatre','cinq','six');
Cela fonctionne sans soucis, Y a t-il une explication pas trop complexe ?
Je sais bien que cela tient à l'encodage, mais si je veux utiliser les caractère de cette facon, est ce possible ?
Merci

:wink:

Posté : 25 févr. 2007, 21:12
par titerm
Tu compare des entites html avec un résultat récupéré dans Post qui est déjà décodé et donc sans entitiés...

Soit tu décode ton tableau d'origine, soit tu encodes la réponse.
$selected = $titre == html_entity_decode($mem_asso[$i]) ? " selected = \"selected\"" : null;