[PHPLIB] Select Dynamique
Bonjour tout le monde! Je cherche à faire un select dynamique dans mon template afin de limiter le code dans template en lui meme et de pouvoir augmenter ou diminuer facilement les selects/options... Bref, voici à quoi j'en suis arrivé:
Code:
1 2 3 4 5 6 7 8 9 10 11
| <!-- BEGIN CreaSelect -->
<p class="p1article" title="{title}">
<!-- BEGIN Select -->
<select name="{SelectName}">
<!-- BEGIN SelectOptions -->
<option value="{OptionValue}" {selected}>{OptionTitre}</option>
<!-- END SelectOptions -->
</select>
<!-- END Select -->
</p>
<!-- END CreaSelect --> |
Et pour le code PHP:
Code:
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
| if(isset($templ_select) and !empty($templ_select))
{
foreach($templ_select as $titre1=>$select)
{
foreach($select as $titre2=>$array)
{
for($i=0,$nb=count($array);$i<$nb;$i++)
{
$moteur->set_var($array[$i]);
$moteur->parse('Option','SelectOptions',TRUE);
}
$moteur->set_var('SelectName',$titre2);
$moteur->parse('Select','Select',TRUE);
$moteur->set_var('Option','');
}
$moteur->set_var('Option','');
$moteur->set_var('title',$titre1);
$message .= $moteur->parse('CreaSel','CreaSelect',TRUE);
$moteur->parse('Select','');
}
} |
Le tableau $templ_select se compose comme suit plus ou moins:
array[Titre de la zone de select][Titre du select][Numéro du champ][Titre des valeurs] => Valeur
Et mon but serait d'obtenir ceci, 2x à la suite...:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
<p class="xxx">
<select name="Jour">
<option value="1" >1</option>
<option value="2" >2</option>
<option value="3" >3</option>
<option value="4" >4</option>
<option value="5" >5</option>
<option value="6" >6</option>
<option value="7" >7</option>
jusqu'à 31...
</select>
<select name="Mois">
<option value="1" selected>Janvier</option>
<option value="2" >Février</option>
<option value="3" >Mars</option>
jusqu'à décembre...
</select>
<select name="Year">
<option value="2011" selected>2011</option>
</select>
</p> |
Mais voilà, le problème, c'est que j'obtiens ceci:
Code:
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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| <p class="p1article" title="Date de début">
<select name="Year">
</select>
<select name="Jour">
<option value="1" >1</option>
<option value="2" >2</option>
<option value="3" >3</option>
<option value="4" >4</option>
<option value="5" >5</option>
<option value="6" >6</option>
<option value="7" >7</option>
<option value="8" >8</option>
<option value="9" >9</option>
Jusqu'à 31...
</select>
<select name="Mois">
<option value="1" selected>Janvier</option>
<option value="2" >Février</option>
<option value="3" >Mars</option>
Jusqu'à décembre...
</select>
<select name="Jour">
<option value="1" >1</option>
<option value="2" >2</option>
<option value="3" >3</option>
<option value="4" >4</option>
<option value="5" >5</option>
<option value="6" >6</option>
<option value="7" >7</option>
<option value="8" >8</option>
Jusqu'à 31...
</select>
<select name="Year">
<option value="2011" selected>2011</option>
<option value="2012" >2012</option>
=> sur quelques années...
</select>
<select name="Jour">
<option value="1" >1</option>
<option value="2" >2</option>
<option value="3" >3</option>
<option value="4" >4</option>
<option value="5" >5</option>
<option value="6" >6</option>
<option value="7" >7</option>
<option value="8" >8</option>
<option value="9" >9</option>
jusqu'à 31...
</select>
<select name="Mois">
<option value="1" selected>Janvier</option>
<option value="2" >Février</option>
<option value="3" >Mars</option>
=> jusqu'à décembre
</select>
<select name="Jour">
<option value="1" >1</option>
<option value="2" >2</option>
<option value="3" >3</option>
=> jusqu'à 31...
</select>
</p>
<p class="p1article" title="Date de fin">
</p> |
Alors voilà mon problème... j'essaie de trouver pourquoi ca ne fonctionne pas depuis quelques temps maintenant, et je n'arrive pas à trouver la solution... Auriez-vous une idée?
PS: j'ai juste modifié un peu la mise en forme dans les zones de codes... :)
PS Final: Voilà, j'ai résolu mon problème suite à une petite idée qui m'a éclairé l'esprit... Le problème venait du nom que j'avais donné à une de mes zones, certainement trop proche du nom d'une autre zone... ^^ Vraiment bête pour finir, mais c'est pas forcément le truc auquel je pense facilement... ^^