Page 1 sur 1

activer SELECTED

Posté : 21 mars 2012, 05:55
par rimie
Bonjour,

J'ai un formulaire avec un champs SELECT et input radio, je clique sur envoyer, le traitement de donnees se fait vias ajax / jQuery:

le formulaire:
<select name="catquestion">
<option value="1">Choix 1</option>
<option value="2">Choix 2</option>
<option value="3">Choix 3</option>
</select>
le traitement

<?php
$catquestion = $_POST['catquestion'];

// conserver le choix dans une session
$_SESSION['catquestion'] = $catquestion;
?>
j'aurais un message que je ne suis pas inscrit ou bien logue, alors j'ai deja conserve mes donnees dans une session, je me logue, et voila je voudrais avoir les meme donnees selectionnees, j'ai essaye par input text ca marche, comment ca se fait au niveau de select et input radio?

exemple de text:
<input type="text" name="question" value="<?php echo $question; ?>" class="question" size="30" maxlength="200" />
merci

Re: activer SELECTED

Posté : 21 mars 2012, 07:48
par xTG
$selected = (isSet($maData)) ? 'selected="selected"' : '';
echo '<input type="radio" name="radio" value="1"' . $selected . ' />';

Re: activer SELECTED

Posté : 21 mars 2012, 09:42
par rimie
merci xTG, voila une bonne partie du code, si une session existe on doit afficher le selected, sinon on memorise l'option pre-selectionne avant l'enois du formulaire:
<?php

	// if logged in
if(IsSet($_SESSION['question_sess']))
{	
		$question = $_SESSION['question_sess'];
		$catquestion = $_SESSION['catquestion'];
		$selected = 'selected="selected"';		
		
}
else
{
	$question = '';
	$catquestion = '';
	$selected = '';
}
?>


<label for="catquestion" style="width: 100px; display: block; float: right; margin-right: 1em;">Cat</label>
<select name="catquestion">
<option value="1" <? echo $selected; ?>>Choix1</option>
<option value="2" <? echo $selected; ?>>Choix2</option>
<option value="3" <? echo $selected; ?>>Choix3</option>
</select>

<input type="submit" name="Send" value="Envoyer" style="margin-right: 1em;" />

Re: activer SELECTED

Posté : 21 mars 2012, 10:03
par xTG
Attention aux short_open_tags.
Et mal réveillé je ne t'avais donné que la moitié de la condition...
$selected = (isSet($maData) && $maData == 1) ? 'selected="selected"' : '';
echo '<input type="radio" name="radio" value="1"' . $selected . ' />';
Et c'est bien sûr une variable par bouton radio... Car sinon tel que tu le fais tu appliques le selected sur tous les boutons et donc le dernier sera toujours pris en compte.

Re: activer SELECTED

Posté : 21 mars 2012, 10:25
par rimie
il me selectionne toutes les options:
$selected = (isSet($catquestion) && $catquestion == 1) ? 'selected="selected"' : '';
			$selected = (isSet($catquestion) && $catquestion == 2) ? 'selected="selected"' : '';
			$selected = (isSet($catquestion) && $catquestion == 3) ? 'selected="selected"' : '';
un exemple sans changer de variables, je peux savoir pourquoi?

Re: activer SELECTED

Posté : 21 mars 2012, 10:47
par xTG
Tu écrases la même variable avec ton code...
Utilises une variable différente pour chaque bouton, ou bien affiches ton input avant de réutiliser la variable.

Re: activer SELECTED

Posté : 21 mars 2012, 11:37
par rimie
Tu écrases la même variable avec ton code...
Utilises une variable différente pour chaque bouton, ou bien affiches ton input avant de réutiliser la variable.
j'ai deja change de variable, je voudrais juste savoir la raison :)

merci