activer SELECTED

Mammouth du PHP | 725 Messages

21 mars 2012, 05:55

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

ViPHP
xTG
ViPHP | 7331 Messages

21 mars 2012, 07:48

$selected = (isSet($maData)) ? 'selected="selected"' : '';
echo '<input type="radio" name="radio" value="1"' . $selected . ' />';

Mammouth du PHP | 725 Messages

21 mars 2012, 09:42

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;" />

ViPHP
xTG
ViPHP | 7331 Messages

21 mars 2012, 10:03

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.

Mammouth du PHP | 725 Messages

21 mars 2012, 10:25

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?

ViPHP
xTG
ViPHP | 7331 Messages

21 mars 2012, 10:47

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.

Mammouth du PHP | 725 Messages

21 mars 2012, 11:37

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