templates + boutons radio

Mammouth du PHP | 514 Messages

30 nov. 2006, 18:29

Bonjour,

j'ai un dilemne, et je ne sais pas comment m'y prendre pour le résoudre. C'est plus dans le concept que dans le code, d'ailleurs, que je pose ma question :

J'ai un formulaire html, qui ne comprend que des boutons radio :

Code : Tout sélectionner

<tr class="{FIELDS.CLASSTITLE}"> <td width="350" height="50" align="left">{FIELDS.LIBELLE}</td> <td width="40"><input type="radio" {FIELDS.SELECTED} name="note[{FIELDS.I}]" id="note{FIELDS.I}0" value="0" tabindex="[{FIELDS.I}]" {FIELDS.CLASS} /></td> <td width="40"><input type="radio" {FIELDS.SELECTED} name="note[{FIELDS.I}]" id="note{FIELDS.I}1" value="1" tabindex="[{FIELDS.I}]" {FIELDS.CLASS} /></td> <td width="40"><input type="radio" {FIELDS.SELECTED} name="note[{FIELDS.I}]" id="note{FIELDS.I}2" value="2" tabindex="[{FIELDS.I}]" {FIELDS.CLASS} /></td> <td width="40"><input type="radio" {FIELDS.SELECTED} name="note[{FIELDS.I}]" id="note{FIELDS.I}3" value="3" tabindex="[{FIELDS.I}]" {FIELDS.CLASS} /></td> <td width="40"><input type="radio" {FIELDS.SELECTED} name="note[{FIELDS.I}]" id="note{FIELDS.I}4" value="4" tabindex="[{FIELDS.I}]" {FIELDS.CLASS} /></td> <td width="40"><input type="radio" {FIELDS.SELECTED} name="note[{FIELDS.I}]" id="note{FIELDS.I}5" value="5" tabindex="[{FIELDS.I}]" {FIELDS.CLASS} /></td> </tr>
Mon problème, c'est qu'il est dans un template, et donc je ne peux pas placer de test if en php. Du coup, comme je récupère mes résultats dans une base de données, je ne sais pas comment placer la bonne valeur à "checked" pour chacune des occurences de formulaire.

Comme c'est un formulaire généré, ce bout de code est multiplié autant de fois que besoin ...

Une suggestion ?
Ne jamais repousser à demain ce qu'on peut faire après demain ...

ViPHP
ViPHP | 3607 Messages

30 nov. 2006, 19:56

regarde du côté de ton template s'il ne comporte pas de tests conditionnels déja implémenté...?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

01 déc. 2006, 00:01

Le "{FIELDS.SELECTED}" doit bien servir à ça, non ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 514 Messages

01 déc. 2006, 10:39

bah le {FIELD.SELECTED}, c'est moi qui l'ai créé.

En fait, mon $i (dans ma boucle pour générer mon formulaire), est le même pour cinq boutons radio. Seule change la valeur, en fait, sur mes radio.

voici le code php actuel :
	for ($i=0;$i<$cptFields;$i++) {
	$class=$listFields[$i][2]==1?"class=\"hidden\"":"";
	$classTitle=$listFields[$i][2]==1?"title":"normal";
	$selected="";

		$template->assign_block_vars('FIELDS', array(
			'I'=>$i,
			'ID'=>$listFields[$i][0],
			'LIBELLE'=>$listFields[$i][1],
			'ISTITLE'=>$listFields[$i][2],
			'NOTE'=>$listFields[$i][3],
			'SELECTED'=>$selected,
			'CLASS'=>$class,
			'CLASSTITLE'=>$classTitle
		));
	}
Et voici la boucle template en entier :

Code : Tout sélectionner

<!-- BEGIN FIELDS --> <input type="hidden" name="id[{FIELDS.I}]" id="id{FIELDS.I}" value="{FIELDS.ID}" /> <tr class="{FIELDS.CLASSTITLE}"> <td width="350" height="50" align="left">{FIELDS.LIBELLE}</td> <td width="40"><input type="radio" {FIELDS.SELECTED} name="note[{FIELDS.I}]" id="note{FIELDS.I}0" value="0" tabindex="[{FIELDS.I}]" {FIELDS.CLASS} /></td> <td width="40"><input type="radio" {FIELDS.SELECTED} name="note[{FIELDS.I}]" id="note{FIELDS.I}1" value="1" tabindex="[{FIELDS.I}]" {FIELDS.CLASS} /></td> <td width="40"><input type="radio" {FIELDS.SELECTED} name="note[{FIELDS.I}]" id="note{FIELDS.I}2" value="2" tabindex="[{FIELDS.I}]" {FIELDS.CLASS} /></td> <td width="40"><input type="radio" {FIELDS.SELECTED} name="note[{FIELDS.I}]" id="note{FIELDS.I}3" value="3" tabindex="[{FIELDS.I}]" {FIELDS.CLASS} /></td> <td width="40"><input type="radio" {FIELDS.SELECTED} name="note[{FIELDS.I}]" id="note{FIELDS.I}4" value="4" tabindex="[{FIELDS.I}]" {FIELDS.CLASS} /></td> <td width="40"><input type="radio" {FIELDS.SELECTED} name="note[{FIELDS.I}]" id="note{FIELDS.I}5" value="5" tabindex="[{FIELDS.I}]" {FIELDS.CLASS} /></td> </tr> <!-- END FIELDS -->
Ne jamais repousser à demain ce qu'on peut faire après demain ...