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é:
Et pour le code PHP:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 -->
Le tableau $templ_select se compose comme suit plus ou moins:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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',''); } }
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...:
Mais voilà, le problème, c'est que j'obtiens ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
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?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
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... ^^
Partager