Je cherche à afficher des résultats en fonction de checkbox cochées
Je génère, d'une part, dans un fichier PHP, une liste de checkbox basée sur les valeurs de champs d'une table.
La base s'appelle "test", la table "results", et je bâtis la liste de checkbox à partir du champs "vehicle_id".
Il y a actuellement 5 champs dans ma table:
id
type_of_vehicle
vehicle_id
type_of_statistics
path.
Par exemple
1 Aircraft DA40 stats_1 path_to_find_stats_1
Je désire quand on coche sur un "vehicle_id" renvoyer à une page (ou mieux faire figurer sur la même page) les type_of_statistics et le path.
Mon problème, c'est qu'actuellement, je ne fais apparaître tous les résultats; or j'aimerais ne sélectionner que les résultats cochés, et je n'ai pas de message d'erreurs par ailleurs
Ci joint mon code 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 <!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"> <head> <!-- Encodage en utf-8 --> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- Encodage en iso-8859-1 --> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Checkbox</title> </head> <body> <legend>Programmes</legend> <p id="vehicle" > <?php echo '<form name="checkbox" method="post" action="results_display.php">'; $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options); # permet de n'afficher que les valeurs distinctes cad éviter de répète le nom du véhicule autant de fois qu'il y a de stats $reponse = $bdd->query('SELECT DISTINCT vehicle_id FROM results'); if ($reponse){ while ($donnees = $reponse -> fetch(PDO::FETCH_ASSOC)){ # on doit échapper avec \ à chaque fois que l'on rencontre les doubles guillemets " echo "<label><input type=\"checkbox\" name =\"id[]\" value = \"". $donnees["vehicle_id"] . "\">" . $donnees["vehicle_id"] . "</label>"; } echo '<input type="submit"/> <input type="reset"/>'; $reponse->closeCursor(); } echo "</form>"; ?> </form> </body>
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 <?php print_r ($_POST); echo "<br />"; if(isset($_POST['id'])){ try{ $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options); $reponse = $bdd->query('SELECT vehicle_id, path, type_of_statistics FROM results WHERE vehicle_id IN ('.implode(',', array_map('intval', $_POST['id'])).')'); while ($donnees = $reponse -> fetch(PDO::FETCH_ASSOC)){ echo $donnees["vehicle_id"] . "<br />"; echo "<a href = \"" . $donnees["path"] . "\">" . $donnees["type_of_statistics"] . "</a> <br />"; } $reponse->closeCursor(); } catch(Exception $e){ die('Erreur : '.$e->getMessage()); } } else echo 'Aucune ID séléctionné.'; ?>
Partager