Bonjour:

pouvez vous m'aider a trouver la solution a la situation suivante:

j'ai des checkboxes , une fois un de ces checkboxes est ( chicked ), je devais faire un ajax call pour ramener les données de la BD correspondantes aux éléments Clickés (checkbox est checked)par l'utilisateur donc je crois qu'il faut trouver une solution dont laquelle chaque fois l'utilisateur click sur checkbox on va concaténer la précédente requête sql avec la nouvelle condition de checkbox.
donc je n'ai trouvé que $_SESSION pour faire cette tache , mais je crois avoir lu qlq part que c'est a éviter cette technique qui consiste a enregistrer les noms de champs BD dans les variables $_SESSION pour les faire passer dans une requête.
qu'est ce que vous pensez messieurs??
merci


voila mon code
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
 
 <script>
function getData(str, r) {
    if (str.length == 0) { 
        document.getElementById("showdata").innerHTML = "";
        return;
    } else {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("showdata").innerHTML = xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET", "getAll.php?q=" + str + "&r=" + r, true);
        xmlhttp.send();
    }
}
</script>
 
<p><b>Contries</b></p>
<div class="checkbox">
  <label><input type="checkbox" name="contries" value="1" onchange="getData( this.name, this.value)">spain  <span class="badge">(30 136)</span></label>
  <label><input type="checkbox" name="contries" value="2" onchange="getData( this.name, this.value)">italy  <span class="badge">(15 244)</span></label>
   <label><input type="checkbox" name="contries" value="3" onchange="getData( this.name, this.value)">norway <span class="badge">(13 885)</span></label>
 
</div>
 
<p><b>Diplomes</b></p>
<div class="checkbox">
   <label><input type="checkbox" name="diplomes" value="1" onchange="getData(this.name, this.value)">a <span class="badge">(11 752)</span></label>
  <label><input type="checkbox" name="diplomes" value="2" onchange="getData( this.name, this.value)">b <span class="badge">(11 752)</span></label>
  <label><input type="checkbox" name="diplomes" value="3" onchange="getData( this.name, this.value)">c<span class="badge">(21 181)</span></label>
   <label><input type="checkbox" name="diplomes" value="4" onchange="getData( this.name, this.value)">d <span class="badge">(32 870)</span></label>
  <label><input type="checkbox" name="diplomes" value="5" onchange="getData( this.name, this.value)"> d <span class="badge">(794)</span></label>
 
 
</div>
 
<p><b>Ages</b></p>
<div class="checkbox">
   <label><input type="checkbox" name="ages" value="1" onchange="getData( this.name, this.value)">20 - 30 years  <span class="badge">(11 752)</span></label>
  <label><input type="checkbox" name="ages" value="2" onchange="getData( this.name, this.value)">30 - 40 years  <span class="badge">(11 752)</span></label>
  <label><input type="checkbox" name="ages" value="3" onchange="getData( this.name, this.value)">40 - 50 years <span class="badge">(21 181)</span></label>
   <label><input type="checkbox" name="ages" value="4" onchange="getData( this.name, this.value)">50 - 60 years  <span class="badge">(32 870)</span></label>
  <label><input type="checkbox" name="ages" value="5" onchange="getData( this.name, this.value)"> > 60 years  <span class="badge">(794)</span></label>
 
 <div name='showdata'>
 
 
 
      </div>
</div>
getAll.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
 
 
<?php 
if (session_status() == PHP_SESSION_NONE) {
    session_start();
}
 
$field = $_REQUEST["q"];
$value = $_REQUEST["q"];
 
 
 
if ($field !== "" && $value !== "") {
	if(!isset($_SESSION['sql']) && empty($_SESSION['sql'])) {
	$_SESSION['sql'] = "SELECT * FROM mytable  WHERE id > 0 ";
	}else{
 
		$_SESSION['sql'] .="AND $field = $value";
 
	}
	//$Db = PDO object et select() est ma function pour les selects
	$hint = $this->Db->select($_SESSION['sql']);
}
?>