Bonjour à tous , voici mon problème .
Après vous avoir demandé comment construire dynamiquement un tableau contenant les différentes clés (activités ) de ma table .J'ai de nouveau un souci .
action.class :
IndexSuccess :
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 <?php /** * activites actions. * * @package SaisieTemps * @subpackage activites * @author Your name here * @version SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $ */ class activitesActions extends sfActions { protected $niveau; /** * Executes index action * @param sfRequest $request A request object */ public function executeIndex(sfWebRequest $request) { $i = 1; $niveaux1 = Doctrine_Query::create() ->select('code,nom') ->from('activites') ->where('pere_id IS NULL and active = "1"') ->fetchArray(); //On exécute la requête foreach($niveaux1 as $niveau1) { $this->niveau[$i][] = array('code'=>$niveau1['code'],'nom'=>$niveau1['nom']); $id = $niveau1['id']; $this->enfant($id,$i); } $this->niveaux = $this->niveau; } protected function enfant($id,$i) { $niveaux2 = Doctrine_Query::create() ->select ('code,nom') ->from('activites') ->where('pere_id = ? and active = "1"',array($id)) ->fetchArray(); if(isset($niveaux2[0])) { $i++; foreach($niveaux2 as $niveau2) { $this->niveau[$i][] = array('code'=>$niveau2['code'],'nom'=>$niveau2['nom']); $this->enfant($niveau2['id'],$i); } } } } ?>
( Désolé pour le code qui n'est pas forcément des mieux présenté. )
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
67
68
69
70 <link type="text/css" href="../css/ui.multiselect.css" rel="stylesheet" /> <script type="text/javascript" src="../js/plugins/localisation/jquery.localisation-min.js"></script> <script type="text/javascript" src="../js/plugins/tmpl/jquery.tmpl.1.1.1.js"></script> <script type="text/javascript" src="../js/plugins/blockUI/jquery.blockUI.js"></script> <script type="text/javascript" src="../js/ui.multiselect.js"></script> <script type="text/javascript"> $(function(){ $.localise('ui.multiselect', {/*language: 'fr',/* */ path: 'js/locale/'}); $(".multiselect").multiselect(); $("#tabs").tabs(); //getter var dividerLocation = $('.selector').dialog('option', 'dividerLocation'); //setter $('.selector').dialog('option', 'dividerLocation', 0.4); }); </script> </script> <?php include_component('home','header',array('titre' => 'Extraction de données brute'))?> <div id='formulaire' style="width: 95%; margin-left: auto; margin-right: auto" align="left"> <p><b class="d1top"><b class="r11"></b><b class="r12"></b><b class="r13"></b><b class="r14"></b></b></p> <center><h><STRONG><FONT SIZE=5>Activités :</FONT></STRONG></h2></center> <br></br> <div class='formulaire'> <div id="tabs" > <ul > <?php foreach($niveaux as $i=>$niveau):?> <li><a href="#tabs-<?php echo $i?>">Niveau <?php echo $i?></a></li> <?php endforeach;?> </ul> <?php foreach($niveaux as $i=>$niveau):?> <div id="tabs-<?php echo $i?>"> <form action="" target="submitFrame" style="border:medium;"> <dl> <select class="multiselect" multiple="multiple" name="niveau[]" style="width: 70% ; margin-left: auto; margin-right: auto" align="center" > <?php foreach($niveau as $activite):?> <option value="<?php echo $activite['code']?>"><?php echo $activite['nom']?></option> <?php endforeach;?> </select> </dl> </form> </div> <?php endforeach;?> </div> </div> </form> </div>
Voila le résultat pour le niveau 2 de mes activités :
http://img203.imageshack.us/img203/8974/test3k.jpg
Le problème est qu'une sous activité peut être du même nom dans plusieurs activités. ( Ex: Appro peut etre présent dans une activité Absence , et dans une autre .. )
Or , comme vous pouvez le constater , il s'affiche plusieurs fois le meme libellé , ceci en fait pour nombre d'entre mes clés. Or ce que je souhaiterais , c'est n'afficher qu'une seule fois cette clé dans ce tableau , qui , en la cochant , sélectionnerait toutes les clés du même nom .
Savez vous quel petit bout de code dans ma requête me permettrait de faire ceci ,car j'ai beau essayé d'utiliser le distinct, cela ne fonctionne pas.
Partager