créer un bouton enregistrer qui marche avec des checkboxs

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : créer un bouton enregistrer qui marche avec des checkboxs

Re: créer un bouton enregistrer qui marche avec des checkboxs

par Spols » 26 août 2022, 14:20

Quand je regarde ton code je vois 6 fois le même code à de tous petits détail pret.
don imageine un tableau du style
$tableau = [['titre' => 'titre1', 'fichier' => 'fichier1', 'id' => 'id1'], ['titre' => 'titre2', 'fichier' => 'fichier2', 'id' => 'id2']];
ne pourrait tu pas im=aginer de boucler sur ce tableau et d'utiliser le code dupliqué une seule fois ?

ton code de récupèration de fichier ne fonctionne que pour un seul fichier à la fois. Il serait peut être interessant que tu puisse ajouter plusieurs fichiers avant d'envoyer ton formulaire mais passons.
Le code de récupèration ne doit pas être dupliqué, ni même dans la boucle dons je parlais plus haut. Parcours ton tableau $_FILES et sauve les fichiers qu'il y a.

Enfin un <form> </form> unique te permet de groupé tout les champs en un envoi de formulaire. mais il te faut des input avec des ID unique (d'où le champs 'id' dans mon array ;) )

Je vois aussi que ton nombre de table doit être important, tu as probablement très mal pensé ton schéma. il vaut mieux une table unique qui continet le nom du fichier et sa réfèrence dans 2 champs qu'une table par réfèrence.

Il y a du boulot pour arrivé à ton objectif, mais ce sera formateur de faire cela bien dès le départ

Re: créer un bouton enregistrer qui marche avec des checkboxs

par minwolf999 » 26 août 2022, 01:01

Bonjour, voilà je voudrais créer un bouton enregistrer qui va pour chaque case d'élève cocher lui enregistrer les compétences également cocher dans un dossier (si possible un pdf qui sera au nom de l'élève cocher) voilà le code de toute la page actuel
Pour réaliser cela j'ai penser à lancer une fonction php qui ferait l'enregistrement des données récoltés via les checkbox dans différents document pdf (dont le nom serait le nom de l'id de la checkbox soit le nom de l'élève) avec le bouton enregistrer cependant je me retrouve bloquer car comme ce bouton est écrit dans la partie html/javascript je ne peux pas lancer la fonction php à partir du bouton donc comment faire ?

Re: créer un bouton enregistrer qui marche avec des checkboxs

par minwolf999 » 25 août 2022, 17:10

il faut mettre tous tes input dans le même forme, que chaque input ai un id et name unique.

Je te conseillerais d'abords par tenter de réduire et simplifier ton code, tu peux au moins le faire 3 à 4 fois moins gros en rajoutant un niveau de boucle.
Quand tu parles de mettre tous mes input dans la même forme il s'agit de tous les mettre en html ou tous en php ?
Pour réduire et simplifier le code tu parles de rajouter une boucle mais je ne vois pas comment elle peut raccourcir le code sans modifier la présentation actuel

Re: créer un bouton enregistrer qui marche avec des checkboxs

par Spols » 25 août 2022, 17:02

il faut mettre tous tes input dans le même forme, que chaque input ai un id et name unique.

Je te conseillerais d'abords par tenter de réduire et simplifier ton code, tu peux au moins le faire 3 à 4 fois moins gros en rajoutant un niveau de boucle.

créer un bouton enregistrer qui marche avec des checkboxs

par minwolf999 » 25 août 2022, 15:40

Bonjour, voilà je voudrais créer un bouton enregistrer qui va pour chaque case d'élève cocher lui enregistrer les compétences également cocher dans un dossier (si possible un pdf qui sera au nom de l'élève cocher) voilà le code de toute la page actuel (même si je ne sais pas si cela va vous servir que je mette tous) (je veux bien vous mettre un screen de la page mais il va falloir m'expliquer comment on fait car je n'y arrive pas)

Code : Tout sélectionner

<!doctype html> <html lang="fr"> <head> <meta charset="utf-8"> <title>Livret scolaire</title> <link rel="stylesheet" media="screen" href="styles.css"> <link rel="shortcut icon" href="" /> <meta name="autor" content=""> </head> <body> <header> </p> </p> </p> </p> <center><h1>SAISIR</h1></center> </header> <SCRIPT type="text/JavaScript"> function OuvrirPopup(page,nom,option) { window.open(page,nom,option); } </script> <BR><BR><BR><FORM name='origine'> <center> <div style="position: relative; float: left;"> <input type="button" value="Ajouter une compétence" onClick="OuvrirPopup('popup/compétence/test.php','popupchoix','width=400,height=150,menubar=no,status=no')"> </div> <input type="button" value="Enregistrer" onClick=""> <div style="position: relative; float: right;"> <input type="button" value="Ajouter un élève" onClick="OuvrirPopup('popup/eleve.php','popupchoix','width=300,height=150,menubar=no,status=no')"> </div> </center> <BR></FORM><br> <div> <div style="position: relative; float: left;"> <h3>Mobiliser le langage dans toutes ses dimensions </h3> <?php $fp = @fopen("popup/compétence/mobiliser le langage dans toutes ses dimensions.txt", "r"); require './bdd.php'; $id=200; $id1=250; $i=1; if ($fp) { while ($buffe = fgets($fp)) { echo "<input type='checkbox' name='$id' onClick='GereChkbox('div_chck','1');' />".$buffe.'<form action="saisir.php" method="POST" enctype="multipart/form-data"> <label for="file1'.$i.'"></label> <input type="file" name="file1'.$i.'"> <button type="submit">Enregistrer</button> </form>'; if(isset($_FILES["file1$i"])){ $tmpName = $_FILES["file1$i"]['tmp_name']; $name = $_FILES["file1$i"]["name"]; $size = $_FILES["file1$i"]['size']; $error = $_FILES["file1$i"]['error']; $tabExtension = explode('.', $name); $extension = strtolower(end($tabExtension)); $extensions = ['jpg', 'png', 'jpeg', 'gif']; $maxSize = 400000; if(in_array($extension, $extensions) && $size <= $maxSize && $error == 0){ $file1 = $name; //$file = 5f586bf96dcd38.73540086.jpg move_uploaded_file($tmpName, './upload/'.$file1); $req = $db->prepare("INSERT INTO file1$i (name) VALUES (?)"); $req->execute([$file1]); }} $req = $db->query("SELECT name FROM file1$i"); while($data = $req->fetch()){ echo "<img src='./upload/".$data['name']."' width='300px' id='$id1'><br>"; } $id=$id++; $id1=$id1++; $i++; echo"<br>"; } fclose($fp); } ?> <h3>Agir, s'exprimer,comprendre à travers l'éducation physique </h3> <?php $fp = @fopen("popup/compétence/agir, s'exprimer,comprendre à travers l'éducation physique.txt", "r"); require './bdd.php'; $id=200; $id1=250; $i=1; if ($fp) { while ($buffe = fgets($fp)) { echo "<input type='checkbox' name='$id' onClick='GereChkbox('div_chck','1');' />".$buffe.'<form action="saisir.php" method="POST" enctype="multipart/form-data"> <label for="file2'.$i.'"></label> <input type="file" name="file2'.$i.'"> <button type="submit">Enregistrer</button> </form>'; if(isset($_FILES["file2$i"])){ $tmpName = $_FILES["file2$i"]['tmp_name']; $name = $_FILES["file2$i"]["name"]; $size = $_FILES["file2$i"]['size']; $error = $_FILES["file2$i"]['error']; $tabExtension = explode('.', $name); $extension = strtolower(end($tabExtension)); $extensions = ['jpg', 'png', 'jpeg', 'gif']; $maxSize = 400000; if(in_array($extension, $extensions) && $size <= $maxSize && $error == 0){ $file2 = $name; //$file = 5f586bf96dcd38.73540086.jpg move_uploaded_file($tmpName, './upload/'.$file2); $req = $db->prepare("INSERT INTO file2$i (name) VALUES (?)"); $req->execute([$file2]); }} $req = $db->query("SELECT name FROM file2$i"); while($data = $req->fetch()){ echo "<img src='./upload/".$data['name']."' width='300px' id='$id1'><br>"; } $id=$id++; $id1=$id1++; $i++; echo"<br>"; } fclose($fp); } ?> <h3>Agir, s'exprimer, comprendre à travers l'éducation artistique </h3> <?php $fp = @fopen("popup/compétence/agir, s'exprimer, comprendre à travers l'éducation artistique.txt", "r"); require './bdd.php'; $id=200; $id1=250; $i=1; if ($fp) { while ($buffe = fgets($fp)) { echo "<input type='checkbox' name='$id' onClick='GereChkbox('div_chck','1');' />".$buffe.'<form action="saisir.php" method="POST" enctype="multipart/form-data"> <label for="file3'.$i.'"></label> <input type="file" name="file3'.$i.'"> <button type="submit">Enregistrer</button> </form>'; if(isset($_FILES["file3$i"])){ $tmpName = $_FILES["file3$i"]['tmp_name']; $name = $_FILES["file3$i"]["name"]; $size = $_FILES["file3$i"]['size']; $error = $_FILES["file3$i"]['error']; $tabExtension = explode('.', $name); $extension = strtolower(end($tabExtension)); $extensions = ['jpg', 'png', 'jpeg', 'gif']; $maxSize = 400000; if(in_array($extension, $extensions) && $size <= $maxSize && $error == 0){ $file3 = $name; //$file = 5f586bf96dcd38.73540086.jpg move_uploaded_file($tmpName, './upload/'.$file3); $req = $db->prepare("INSERT INTO file3$i (name) VALUES (?)"); $req->execute([$file3]); }} $req = $db->query("SELECT name FROM file3$i"); while($data = $req->fetch()){ echo "<img src='./upload/".$data['name']."' width='300px' id='$id1'><br>"; } $id=$id++; $id1=$id1++; $i++; echo"<br>"; } fclose($fp); } ?> <h3>Construire les premiers outils pour structurer sa pensée </h3> <?php $fp = @fopen("popup/compétence/construire les premiers outils pour structurer sa pensée.txt", "r"); require './bdd.php'; $id=200; $id1=250; $i=1; if ($fp) { while ($buffe = fgets($fp)) { echo "<input type='checkbox' name='$id' onClick='GereChkbox('div_chck','1');' />".$buffe.'<form action="saisir.php" method="POST" enctype="multipart/form-data"> <label for="file4'.$i.'"></label> <input type="file" name="file4'.$i.'"> <button type="submit">Enregistrer</button> </form>'; if(isset($_FILES["file4$i"])){ $tmpName = $_FILES["file4$i"]['tmp_name']; $name = $_FILES["file4$i"]["name"]; $size = $_FILES["file4$i"]['size']; $error = $_FILES["file4$i"]['error']; $tabExtension = explode('.', $name); $extension = strtolower(end($tabExtension)); $extensions = ['jpg', 'png', 'jpeg', 'gif']; $maxSize = 400000; if(in_array($extension, $extensions) && $size <= $maxSize && $error == 0){ $file4 = $name; //$file = 5f586bf96dcd38.73540086.jpg move_uploaded_file($tmpName, './upload/'.$file4); $req = $db->prepare("INSERT INTO file4i (name) VALUES (?)"); $req->execute([$file4]); }} $req = $db->query("SELECT name FROM file4$i"); while($data = $req->fetch()){ echo "<img src='./upload/".$data['name']."' width='300px' id='$id1'><br>"; } $id=$id++; $id1=$id1++; $i++; echo"<br>"; } fclose($fp); } ?> <h3>Explorer le monde </h3> <?php $fp = @fopen("popup/compétence/explorer le monde.txt", "r"); require './bdd.php'; $id=200; $id1=250; $i=1; if ($fp) { while ($buffe = fgets($fp)) { echo "<input type='checkbox' name='$id' onClick='GereChkbox('div_chck','1');' />".$buffe.'<form action="saisir.php" method="POST" enctype="multipart/form-data"> <label for="file5'.$i.'"></label> <input type="file" name="file5'.$i.'"> <button type="submit">Enregistrer</button> </form>'; if(isset($_FILES["file5$i"])){ $tmpName = $_FILES["file5$i"]['tmp_name']; $name = $_FILES["file5$i"]["name"]; $size = $_FILES["file5$i"]['size']; $error = $_FILES["file5$i"]['error']; $tabExtension = explode('.', $name); $extension = strtolower(end($tabExtension)); $extensions = ['jpg', 'png', 'jpeg', 'gif']; $maxSize = 400000; if(in_array($extension, $extensions) && $size <= $maxSize && $error == 0){ $file5 = $name; //$file = 5f586bf96dcd38.73540086.jpg move_uploaded_file($tmpName, './upload/'.$file5); $req = $db->prepare("INSERT INTO file5$i (name) VALUES (?)"); $req->execute([$file5]); }} $req = $db->query("SELECT name FROM file5$i"); while($data = $req->fetch()){ echo "<img src='./upload/".$data['name']."' width='300px' id='$id1'><br>"; } $id=$id++; $id1=$id1++; $i++; echo"<br>"; } fclose($fp); } ?> <h3>Devenir élève </h3> <?php $fp = @fopen("popup/compétence/devenir eleve.txt", "r"); require './bdd.php'; $id=200; $id1=250; $i=1; if ($fp) { while ($buffe = fgets($fp)) { echo "<input type='checkbox' name='$id' onClick='GereChkbox('div_chck','1');' />".$buffe.'<form action="saisir.php" method="POST" enctype="multipart/form-data"> <label for="file6'.$i.'"></label> <input type="file" name="file6'.$i.'"> <button type="submit">Enregistrer</button> </form>'; if(isset($_FILES["file6$i"])){ $tmpName = $_FILES["file6$i"]['tmp_name']; $name = $_FILES["file6$i"]["name"]; $size = $_FILES["file6$i"]['size']; $error = $_FILES["file6$i"]['error']; $tabExtension = explode('.', $name); $extension = strtolower(end($tabExtension)); $extensions = ['jpg', 'png', 'jpeg', 'gif']; $maxSize = 400000; if(in_array($extension, $extensions) && $size <= $maxSize && $error == 0){ $file6 = $name; //$file = 5f586bf96dcd38.73540086.jpg move_uploaded_file($tmpName, './upload/'.$file6); $req = $db->prepare("INSERT INTO file6$i (name) VALUES (?)"); $req->execute([$file6]); }} $req = $db->query("SELECT name FROM file6$i"); while($data = $req->fetch()){ echo "<img src='./upload/".$data['name']."' width='300px' id='$id1'><br>"; } $id=$id++; $id1=$id1++; $i++; echo"<br>"; } fclose($fp); } ?> </div> <div style="position: relative; float: right;"> <input type="button" value="sélectionner tous les Ps/Ms" id="select"> <br><br> <h3> Ps/Ms <br></h3> <?php $fp = @fopen("popup/ps.txt", "r"); // Ouverture du tableau contenant les prénoms $tab = array(); if ($fp) { while ($buffer = fgets($fp)) { echo $buffer .'<input type="checkbox" name="ps" ; />' ."<br><br>"; if (isset( $_POST['envoie'])) { if (isset( $_POST['value_1'])) echo $_POST['value_1'].'<br />'; // Contenu de la global P_POST print_r($_POST); } } fclose($fp); } ?> <input type="button" value="sélectionner tous les Ms/Gs" id="selecte"> <h3> Ms/Gs <br></h3> <?php $fp = @fopen("popup/gs.txt", "r"); // Ouverture du tableau contenant les prénoms $tab = array(); if ($fp) { while ($buffer = fgets($fp)) { echo $buffer ."<input type='checkbox' name='gs' ;' />" ."<br><br>"; if (isset( $_POST['envoie'])) { if (isset( $_POST['value_1'])) echo $_POST['value_1'].'<br />'; // Contenu de la global P_POST print_r($_POST); } } fclose($fp); } ?> </div> </div> <script> document.getElementById('select').onclick = function() { var checkboxes = document.getElementsByName('ps'); for (var checkbox of checkboxes) { checkbox.checked = true; } } document.getElementById('selecte').onclick = function() { var checkboxes = document.getElementsByName('gs'); for (var checkbox of checkboxes) { checkbox.checked = true; } } </script> </body> </html>