Bonjour,
J'ai construit une page sur laquelle il y a un formulaire d'inscription avec de la documentation que l'on peut demander en cliquant des checkbox. Pour mettre à jour cette documentation qui peut être amenée à évoluer, j'ai créé un système de mise à jour qui permet di'nsérer de nouvelles docs, d'en supprimer, de cliquer celles qui s'afficheront sur le formulaire ou pas... Ce que je n'arrive pas à faire est la récupération des checkbox cliqués sur le formulaire. J'ai une table documentation dans laquelle je décompose mes checkbox, le code de chaque documentation se trouve dans ce champ : code_publication_doc, une ligne est créée pour chaque documentation insérée, je récupère aussi le stock, la doc demandée par quel utilisateur, la date...).
Voici ma table avec un exemple d'insertion :
Code sql : 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 CREATE TABLE `documentation` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code_publication_doc` varchar(50) NOT NULL, `description` varchar(100) NOT NULL, `image` varchar(300) NOT NULL, `version_numerique` varchar(300) NOT NULL, `categorie_publication` int(11) NOT NULL, `division` varchar(50) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT NULL, `qte_stock` int(11) NOT NULL, `qte_demande` int(11) NOT NULL, `date_maj` date NOT NULL, `formulaire_affich` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO `documentation` (`id`, `code_publication_doc`, `description`, `image`, `version_numerique`, `categorie_publication`, `division`, `qte_stock`, `qte_demande`, `date_maj`, `formulaire_affich`) VALUES (4, '20fds329-FP', 'synthese', 'synthese.jpg', 'affiche.php?ref=2027', 2, '3', 17, 11, '2021-07-26', 0),
Voilà et mon souci se situe à ce niveau là, je ne sais pas comment écrire le code pour bien récupérer de façon individuelle dans chaque champ mes checkbox cliqués :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <img style="text-decoration:none;" class="bordure" src="../images/<?php echo $rang['image']; ?>" alt="../images/<?php echo $rang['description']; ?>" width="110" height="144"/></a> <br /><br /> <input type="checkbox" name="chk1[]" value="<?php echo $rang['code_publication_doc']; ?>"<?php if(isset($_POST['chk1']) AND in_array($rang['code_publication_doc'], $_POST['chk1'])) {echo 'checked="checked"';} ?> id="<?php echo $rang['code_publication_doc']; ?>"> <?php echo $rang['description']; ?>
Et voici mon code complet :
Code php : 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 <?php if(isset($_POST['upload'])) { require "connection.php"; mysql_query("SET NAMES UTF8"); $nom = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["nom"]))); $prenom = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["prenom"]))); $result="INSERT INTO pros (nom,prenom) VALUES ('".$nom."','".$prenom."')"; $req= mysql_query($result) or die ('Erreur sql !<br />'.$result.'<br />'.mysql_error()); $nId_pros = mysql_insert_id(); $res = mysql_num_rows($req); if($res!=0) { echo "-"; } else { $checkbox1 = $_POST['chk1']; for ($i=0; $i<sizeof($checkbox1);$i++) { $cSql2 = "INSERT INTO demande_publications VALUES ('','".$checkbox1[$i]."','" . $nId_pros . "', NOW())"; mysql_query($cSql2) or die(mysql_error()); $cSql5 = "UPDATE documentation SET qte_demande=qte_demande+1 WHERE code_publication_doc='".$checkbox1[$i]."'"; mysql_query($cSql5) or die(mysql_error()); } } } mysql_close(); ?> <form action="inscription.php" method="post" width="650"> <fieldset> <legend >Compte :</legend> <input name="nom" title="nom" value="<?php if (isset($_POST['nom'])) echo htmlentities(trim($_POST['nom'])); ?>" size="70" type="text" tabindex="4" onFocus="this.select()"/> <?php $sql ="SELECT documentation.id, documentation.code_publication_doc, documentation.description, documentation.image, documentation.categorie_publication, documentation.division, documentation.qte_stock, documentation.qte_demande, documentation.formulaire_affich, documentation.date_maj, categories_publications.categorie AS categorie_publication, divisions.division_titre AS division FROM documentation LEFT JOIN categories_publications ON documentation.categorie_publication = categories_publications.id LEFT JOIN divisions ON documentation.division = divisions.id WHERE categories_publications.id = 1 and documentation.formulaire_affich='oui'"; $resultat = mysql_query($sql,$conn) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); while ($rang= mysql_fetch_array ($resultat)){ ?> <img style="text-decoration:none;" class="bordure" src="../images/<?php echo $rang['image']; ?>" alt="../images/<?php echo $rang['description']; ?>" width="110" height="144"/></a> <br /><br /> <input type="checkbox" name="chk1[]" value="<?php echo $rang['code_publication_doc']; ?>"<?php if(isset($_POST['chk1']) AND in_array($rang['code_publication_doc'], $_POST['chk1'])) {echo 'checked="checked"';} ?> id="<?php echo $rang['code_publication_doc']; ?>"> <?php echo $rang['description']; ?> <?php } ?> <input class="butn" style="cursor:pointer" title="Submit" name="upload" type="submit" id="submit" value="Submit" /> <input type="reset" value="Delete" title="Delete" tabindex="14" class="butn" style="cursor:pointer"/> </fieldset> </form>
Merci beaucoup pour votre aide
Partager