Bonsoir à tous
dans mon site j'ai une page de recherche:
comment je peux réaliser ça
en cliquant sur un checkbox
j'interroge ma BDD pour rafraîchir mon résultat
sachant que je peux cocher plusieurs ou les décocher
merci
Bonsoir à tous
dans mon site j'ai une page de recherche:
comment je peux réaliser ça
en cliquant sur un checkbox
j'interroge ma BDD pour rafraîchir mon résultat
sachant que je peux cocher plusieurs ou les décocher
merci
Il nous faudrait une partie de ton code. Dans ta requête tu dois simplement faire un WHERE avec les paramètres de tes checkbox
oui mais comment je peux submit mon formulaire à partir de mon checkbox
voici ce que j'ai fait comme code:
ma requête pour un type de checkbox
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 <?php include("admin/connexion.php"); $reponse = ''; $recherche=array(); $choix=$_POST['systeme']; $j=0; foreach ($_POST["systeme"] AS $key => $value) { $select="SELECT distinct produit.id_produit, produit.id_marque, produit.modele, produit.type_produit,sav, prix,disponible, categorie, photo_b,photo_p,photo_d,marque FROM produit JOIN marque ON produit.id_marque= marque.id_marque JOIN caracteristique ON caracteristique.id_produit= produit.id_produit JOIN choix ON choix.id_choix= caracteristique.id_choix JOIN filtre ON filtre.id_filtre= choix.id_choix WHERE lib_choix='".$key."' "; $result = mysql_query($select) or die(mysql_error()); $recherche[$j]="{'id':'".mysql_real_escape_string($p[0])."','id_marque':'".$p[1]."','modele':'".$p[2]."','type_produit':'".$p[3]."', 'sav':'".$p[4]."','diponible':'".$p[5]."','categorie':'".$p[6]."','photo':'".$p[7]."','marque':'".$p[10]."'}"; $j++; } echo "{'RECHERCHE':["; echo implode(",",$recherche); echo "]}"; ?>
mes checkbox:
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 <h4>Le système d'exploitation</h4> <p><input type="checkbox" name="systeme[]" value="1" class="systeme" >Android</p> <p><input type="checkbox" name="systeme[]" value="2" class="systeme" >Windows</p> <p><input type="checkbox" name="systeme[]" value="3" class="systeme" >Fire OS</p> <p><input type="checkbox" name="systeme[]" value="4" class="systeme">iOS</p> <p><input type="checkbox" name="systeme[]" value="5" class="systeme">BlackBerry OS</p> <p><input type="checkbox" name="systeme[]" value="6" class="systeme">Linux</p> <br/> <h4>Marque</h4> <p><input type="checkbox" name="marque[]" value="10" >Samsung</p> <p><input type="checkbox" name="marque[]" value="11" >NOKIA</p> <p><input type="checkbox" name="marque[]" value="12" >SONY</p> </div> <div> mon résultat à afficher</div>
Si tu ne veux pas soumettre un formulaire HTML, il faut passer par de l'Ajax.
N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP
j'ai trouvé une solution mais ça ne marche pas chez moi
ma page php
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 <?php include("admin/connexion.php"); $select = 'SELECT distinct produit.id_produit, produit.id_marque, produit.modele, produit.type_produit,sav, prix,disponible, categorie, photo_b,photo_p,photo_d,marque FROM produit JOIN marque ON produit.id_marque= marque.id_marque JOIN caracteristique ON caracteristique.id_produit= produit.id_produit JOIN choix ON choix.id_choix= caracteristique.id_choix JOIN filtre ON filtre.id_filtre= choix.id_choix'; $where = ' WHERE TRUE'; $opts = isset($_POST['filterOpts'])? $_POST['filterOpts'] : array(''); $j=0; if (in_array("systeme", $opts)){ $where .= " AND id_choix = 1"; } $sql = $select . $where; $result=mysql_query($sql); while($p=mysql_fetch_array($result)) { $recherche[$j]="{'id':'".mysql_real_escape_string($p[0])."','id_marque':'".$p[1]."','modele':'".$p[2]."','type_produit':'".$p[3]."', 'sav':'".$p[4]."','diponible':'".$p[5]."','categorie':'".$p[6]."','photo':'".$p[7]."','marque':'".$p[10]."'}"; $j++; } echo "{'RECHERCHE':["; echo implode(",",$recherche); echo "]}"; ?>
ma page avec AJAX
je veux tester en affichant des alertes mais ça ne marche pas
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 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>AJAX filter demo</title> </head> <body> <h1>Temporary worker database</h1> <table id="a"> <thead> <tr> <th>ID</th> <th>Name</th> <th>Age</th> <th>Address</th> <th>Car</th> <th>Language</th> <th>Nights</th> <th>Student</th> </tr> </thead> <tbody> </tbody> </table> <div id="filter"> <h2>Filter options</h2> <div> <input type="checkbox" id="car" name="systeme"> </div> </div> <script src="http://code.jquery.com/jquery-latest.js"></script> <script> function makeTable(data){ var tbl_body = ""; $.each(myObject.RECHERCHE, function() { var tbl_row = ""; $.each(this, function(k , v) { alert(55); }), }), return tbl_body; } function getFilter(){ var opts = []; $checkboxes.each(function(){ if(this.checked){ opts.push(this.name); alert(5); } }); return opts; } function updateRecherche(opts){ $.ajax({ type: "POST", url: "recherche_check.php", cache: false, data: {filterOpts: opts}, success: function(records){ alert(5); } }); } var $checkboxes = $("input:checkbox"); $checkboxes.on("change", function(){ var opts = getFilter(); updateRecherche(opts); }); updateRecherche(); </script> </body> </html>
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager