Bonjour � tous,

�tant compl�tement d�butant dans le monde du d�veloppement en g�n�ral je vais essayer d'�tre le plus explicite possible.

J'essaye de d�velopper un petit trombinoscope bas� sur php/MySQL, tout fonctionne comme je le souhaite il ne me reste plus qu'� faire en sorte que l'on puisse ressortir les infos souahit�e !

Pour se faire je joue sur ce que j'appelle des cat�gories qui sont service, responsable, etc...

Je veux faire en sorte que lorsque je clique sur une checkbox ma condtion se construise tout seul, voila ce a quoi j'arrive :

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Trombinoscope</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 
        <script type="text/javascript">
        elements_requete_service = new Array();
        elements_requete_responsable = new Array();
 
        function check_service(val_input, valeur_condi)
        {
        if (val_input)
            {
            elements_requete_service.push(valeur_condi);
            }
            else
                {
                for(var i = 0; i < elements_requete_service.length; ++i)
                    {
                    if(elements_requete_service[i] == valeur_condi)
                        {
                        elements_requete_service.splice(i,1);
                        }
                    }
                }
        document.getElementById('conditions_requete').value =  elements_requete_service.join(' OR ');
        document.getElementById('conditions_requete_visu').value =  elements_requete_service.join(' OR ');
        }
 
        function check_responsable(val_input, valeur_condi)
        {
        if (val_input)
            {
            elements_requete_responsable.push(valeur_condi);
            }
            else
                {
                for(var i = 0; i < elements_requete_responsable.length; ++i)
                    {
                    if(elements_requete_responsable[i] == valeur_condi)
                        {
                        elements_requete_responsable.splice(i,1);
                        }
                    }
                }
        document.getElementById('conditions_requete_2').value =  elements_requete_responsable.join();
        document.getElementById('conditions_requete_visu_2').value =  elements_requete_responsable.join();
        }
        </script>
    </head>
 
    <body>
 
            <h1><u>Filtre trombinoscope :</u></h1>
 
            <p>Cochez les options pour lesquelles vous souhaitez avoir le personnel :</p>
 
            <form action="test.php" method="post">
 
                <TABLE BORDER>
                    <TR>
                        <TD WIDTH=250 HEIGHT=150>
                            Service :<br /><br />
 
                            <input type="checkbox"  id="administratif" onClick="check_service(this.checked, 'SERVICE = \'administratif\'');" tabindex="10" /><label for="administratif"> Administratif</label><br>
                            <input type="checkbox"  id="condibg" onClick="check_service(this.checked, 'SERVICE = \'condibg\'');" tabindex="20" /><label for="condibg"> Conditionnement BG</label><br>
                            <input type="checkbox"  id="condilmg" onClick="check_service(this.checked, 'SERVICE = \'condilmg\'');" tabindex="30" /><label for="condilmg"> Conditionnement LMG</label><br>
                            <input type="checkbox"  id="entretien" onClick="check_service(this.checked, 'SERVICE = \'entretien\'');" tabindex="40" /><label for="entretien"> Entretien</label><br>
                            <input type="checkbox"  id="expedition" onClick="check_service(this.checked, 'SERVICE = \'expedition\'');" tabindex="50" /><label for="expedition"> Expédition</label><br>
                            <input type="checkbox"  id="maintenance" onClick="check_service(this.checked, 'SERVICE = \'maintenance\'');" tabindex="60" /><label for="maintenance"> Maintenance</label><br>
                            <input type="checkbox"  id="pain" onClick="check_service(this.checked, 'SERVICE = \'pain\'');" tabindex="70" /><label for="pain"> Pain</label><br>
                            <input type="checkbox"  id="patisserie" onClick="check_service(this.checked, 'SERVICE = \'patisserie\'');" tabindex="80" /><label for="patisserie"> Pâtisserie</label>
                        </TD>
 
                        <TD WIDTH=250 HEIGHT=150>
                            Responsabilités :<br /><br />
 
                            <input type="checkbox"  id="responsable" onClick="check_responsable(this.checked, 'RESPONSABLE = \'checked\'');" tabindex="90" /><label for="responsable"> Responsable ?</label><br>
                            <input type="checkbox"  id="dp" onClick="check_dp(this.checked, 'DP = \'checked\'');" tabindex="100" /><label for="dp"> Délégué du personnel ?</label><br>
                            <input type="checkbox"  id="chsct" onClick="check_chsct(this.checked, 'CHSCT = \'checked\'');" tabindex="110" /><label for="chsct"> CHSCT ?</label><br>
                        </TD>
 
                        <TD WIDTH=250 HEIGHT=150>
                            Type de contrat :<br /><br />
 
                        </TD>                       
                    </TR>
                </TABLE>
 
                <input type="hidden" name="conditions_requete" id="conditions_requete" value="Aucune case cochée" />
                <input type="text" name="conditions_requete_visu" id="conditions_requete_visu" value="Aucune case cochée" />
 
                <input type="hidden" name="conditions_requete_2" id="conditions_requete_2" value="Aucune case cochée" />
                <input type="text" name="conditions_requete_visu_2" id="conditions_requete_visu_2" value="Aucune case cochée" />
 
                <input type="submit" value="Valider" />           
            </form>
 
    </body>
</html>
J'arrive donc pour une cat�gorie � avoir par exemple SERVICE='maintenance' OR SERVICE = 'pain' et aussi RESPONSABLE="checked"

la ou le bas blesse c'est que je voudrais mettre un AND entre ces array automatiquement (comme c'est fait pour le OR) car il se peut que seulement responsable soit coch� par exemple...

Je ne vois pas comment m'y prendre mis � part avec un bout de code php super long et tordu...

Existe t'il une reste miracle � mon mal ?

Merci par avance � ceux qui auront eu la patience de lire tout ce post, si je ne suis pas clair (ce dont je ne doute pas) n'h�sitez pas � me demander des pr�cisions.