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.