Créer un bouton enregistrer qui marche avec des checkboxs

Fermé
minwolf Messages postés 4 Date d'inscription vendredi 26 août 2022 Statut Membre Dernière intervention 26 août 2022 - 26 août 2022 à 11:39
minwolf Messages postés 4 Date d'inscription vendredi 26 août 2022 Statut Membre Dernière intervention 26 août 2022 - 26 août 2022 à 17:37

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).

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 donc pas lancer la fonction php à partir du bouton donc y a t il une autre méthode ?

<!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="Antoine Marvin">

 </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="submit" value="Enregistrer" onClick="enregistrer()">
  <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><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';

$i=1;
if ($fp) {
    while ($buffe = fgets($fp)) {
		 echo "<input type='checkbox' name=".$buffe." onClick='GereChkbox('div_chck','1');' />".$buffe.'<br>'.'<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="".$data['name']."' width='300px' id=".$buffe."><br>";
        }
	
	 $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';

$i=1;
if ($fp) {
    while ($buffe = fgets($fp)) {
		 echo "<input type='checkbox' name=".$buffe." onClick='GereChkbox('div_chck','1');' />".$buffe.'<br>'.'<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="".$data['name']."' width='300px' id=".$buffe."><br>";
        }
	
	 $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';

$i=1;
if ($fp) {
    while ($buffe = fgets($fp)) {
		 echo "<input type='checkbox' name=".$buffe." onClick='GereChkbox('div_chck','1');' />".$buffe.'<br>'.'<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="".$data['name']."' width='300px' id=".$buffe."><br>";
        }
	
	 $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';

$i=1;
if ($fp) {
    while ($buffe = fgets($fp)) {
		 echo "<input type='checkbox' name=".$buffe." onClick='GereChkbox('div_chck','1');' />".$buffe.'<br>'.'<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="".$data['name']."' width='300px' id=".$buffe."><br>";
        }
	
  

	 $i++;
	 echo"<br>";
}
    
    fclose($fp);
}
?>

<h3>Explorer le monde
  </h3>
     <?php
$fp = @fopen("popup/compétence/explorer le monde.txt", "r");
require './bdd.php';

$i=1;
if ($fp) {
    while ($buffe = fgets($fp)) {
		 echo "<input type='checkbox' name=".$buffe." onClick='GereChkbox('div_chck','1');' />".$buffe.'<br>'.'<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="".$data['name']."' width='300px' id=".$buffe."><br>";
        }
	
  
	 
	 $i++;
	 echo"<br>";
}
    
    fclose($fp);
}
?>

<h3>Devenir élève
  </h3>
     <?php
$fp = @fopen("popup/compétence/devenir eleve.txt", "r");
require './bdd.php';


$i=1;
if ($fp) {
    while ($buffe = fgets($fp)) {
		 echo "<input type='checkbox' name=".$buffe." onClick='GereChkbox('div_chck','1');' />".$buffe.'<br>'.'<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="".$data['name']."' width='300px' id=".$buffe."><br>";
        }
	
  
	 
	
	 $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" id='.$buffer.'; />' ."<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' id=".$buffer.";' />" ."<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);
}
?>
</FORM>
  </div>
  <div style="position: relative; float: left;">
  	<select name="NOM_DE_TA_VALEUR">
	<form method="post" action="eleve.php">
<?php
   $fp = @fopen("popup/eleve.txt", "r");
   
   
   $matiere = $_POST['NOM_DE_TA_VALEUR'];
// traitement du formulaire en PHP
// nb: On essaiera de placer le maximum de code php EN DEHORS du code html
if(isset($_POST['envoyer']) ){
  $nom = !empty($_POST['nom']) ? $_POST['nom'] : "";
  
     //On récupère le contenu du fichier
        if ($matiere ==="ps"){
	 $texte = file_get_contents("ps.txt");}
            
        //On ajoute notre nouveau texte à l'ancien
        $texte .= "\n" .$nom ;
            
        //On écrit tout le texte dans notre fichier
       if ($matiere === "ps"){
        file_put_contents("ps.txt", $texte);}
		
}

if ($fp) {
    while ($buffe = fgets($fp)) {
		 echo '<option value='.$buffe.'>'.$buffe.'</option>'."<br>";
	}
}
	  

?>

<p>
<textarea id="text" rows="10" cols="50" name="nom" placeholder="appréciation"></textarea>
      <input type="submit" value="Selectionner" name="envoyer"/>
   </p>
   </select>
</form>
  
</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>


Windows / Firefox 103.0

A voir également:

4 réponses

jordane45 Messages postés 38173 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 10 mai 2024 4 665
26 août 2022 à 13:17

Bonjour,

je me retrouve bloquer car comme ce bouton est écrit dans la partie html/javascript je ne peux donc pas lancer la fonction php à partir du bouton 

Tu dois passer par le "SUBMIT" de ton formulaire.

Formulaire auquel il manque l'attribut method et l'attribut action.

TU peux aussi le "déclencher" depuis le javascript et utiliser l'AJAX pour envoyer tes données vers un autre script php qui s'occupera de traiter les données.

Au passage, histoire de rendre ton code un peu plus lisible et maintenable.. je t'invite à appliquer les conseils donnés ici :https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code


0
minwolf Messages postés 4 Date d'inscription vendredi 26 août 2022 Statut Membre Dernière intervention 26 août 2022
26 août 2022 à 14:01

Merci pour ta réponse (je m'occuperais de rendre le code un peu plus lisible une fois qu'il sera complet et qu'il n'y a plus rien à ajouter (donc après avoir fini cette partie du code qui est la dernière pour cette page).

Je me suis poser une question est ce que dans la partie onclick du bouton on ne pourrais pas directement écrire le code php qui doit s'occuper de retranscrire ce que je veux dans les documents ? Cela me semble faisable mais comme je ne sais pas comment m'y prendre pour faire ce que je veux je suis donc bloquer ...

As-tu une idée pour me débloquer et pouvoir écrire dans des documents pdf au nom de chaque élève les compétences valider (celle qui seront cochées) ?

0

Bonjour,

Non il n'est pas possible d'exécuter du code PHP dans un attribut onclick car le code PHP est exécuté coté serveur contrairement au code HTML/JS qui est exécuté coté client.

Comme indiqué par jordane45, pour exécuter du code PHP à partir de ta page HTML/JS, il faut utiliser un formulaire ou ajax.

0
minwolf Messages postés 4 Date d'inscription vendredi 26 août 2022 Statut Membre Dernière intervention 26 août 2022
26 août 2022 à 14:51

Merci pour ton retour ça me rassure que ça soit faisable.

Pour le formulaire j'ai un <FORM name='origine'> qui s'ouvre ligne 30 et qui se ferme ligne 472 il englobe donc tous ce qu'il me faut mais il lui manque surement des attributs non ?

0
jordane45 Messages postés 38173 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 10 mai 2024 4 665
26 août 2022 à 16:01

Suffit de relire ma précédente réponse..

0
minwolf Messages postés 4 Date d'inscription vendredi 26 août 2022 Statut Membre Dernière intervention 26 août 2022
Modifié le 26 août 2022 à 17:39

Ah oui merci du coup je viens de le modifier et j'ai mis ceci à la place:

<FORM method="post" action="saisir.php" name='origine'>

Pour ce que je souhaite faire il faut bien utiliser le method="post" ou il faut le method="get" ? (avez vous un guide clair qui peux m'expliquer la différence entre les deux ?

Ensuite dans la partie php déclencher par le onclick du bouton je m'y prends comment pour récupérer les données des checkboxs des élèves et créé un document pdf portant le nom de l'id de la checkbox à partir de cela ?

0