Page 1 sur 1

Requete update formulaire dynamique

Posté : 31 janv. 2017, 18:50
par James09
Bonjour après 1 semaine de recherche sur le net pour mon problème je me tourne vers vous , j'explique j'ai une page ou s'affiche deux select alimentées par ma bdd un pour l'email et l'autre pour la semaine (en fonction de l'email) précédemment enregistré dans un autre formulaire dans une autre page , les select en code c'est ça :

Code : Tout sélectionner

<body> <?php include "utils/navbar.php";?> </br> </br> <?php if(isset($_POST['ok']) && isset($_POST['nb_semaine']) && $_POST['nb_semaine'] != "") { $email_selectionnee = $_POST['email_user']; $semaine_selectionne = $_POST['nb_semaine']; $bdd = new PDO('mysql:host=localhost;dbname=rapport', 'root', ''); } try { //connexion BDD $bdd = new PDO('mysql:host=localhost;dbname=rapport', 'root', ''); if($bdd != false) { $reponse = $bdd->query('SELECT DISTINCT email_user FROM form'); $email_user = array(); $nb_email = 0; while($ligne_email = $reponse->fetch()) { array_push($email_user, $ligne_email['email_user']); /* On incrémente de compteur */ $nb_email++; } ?> <form action="" id="formliste" method="post"> <div class="form-group" id="selectemail"> <select name="email_user" class="form-control" id="email_user" onchange="document.forms['formliste'].submit();" type="text"> <option value="-1">- - - Sélectionner une adresse - - -</option> <?php for($i = 0; $i < $nb_email; $i++) { ?> <option <?php echo((isset($idr) && $idr == $email_user[$i])?" selected=\"selected\"":null); ?>><?php echo($email_user[$i]); ?></option> <?php } ?> </select> </div> <?php unset($reponse); /* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */ if(isset($idr) && $idr != -1) { $reponse2 = $bdd->query('SELECT DISTINCT nb_semaine FROM form WHERE email_user ="'.$_POST['email_user'].'"'); if($bdd != false){ /* Un petit compteur pour les départements */ $nd = 0; /* On crée deux tableaux pour les numéros et les noms des départements */ $nb_semaine = array(); while ($ligne_semaine = $reponse2->fetch()) { array_push($nb_semaine, $ligne_semaine['nb_semaine']); $nd++; } ?> <div class="form-group" id="selectsemaine"> <select class="form-control" name="nb_semaine" id="nb_semaine" type="text"> <?php for($d = 0; $d<$nd; $d++) { ?> <option <?php echo((isset($semaine_selectionne) && $semaine_selectionne == $nb_semaine[$d])?" selected=\"selected\"":null); ?>><?php echo($nb_semaine[$d]); ?></option> <?php } ?> </select> </div> <?php } unset($reponse); } ?> <input class="btn btn-success" type="submit" name="ok" id="ok" value="Valider"/> </form><br/>
Ensuite juste en dessous j'ai un autre formulaire ou s'affiche les données de ma bdd en fonction de ce que j'ai choisi dans les select , le code :

Code : Tout sélectionner

<?php if(isset($_POST['ok']) && isset($_POST['nb_semaine']) && $_POST['nb_semaine'] != "") { ?> <form method="post" action="modifadmin.php" name="form2"><?php echo'<div class="form-group row" id="semaine"> <label for="example-week-input" class="col-xs-2 col-form-label">Semaine n°</label> <div class="col-xs-10"> <input class="form-control" type="week" name="nb_semaine" value="'.$semaine_selectionne.'"> </div> </div><hr>'; ?><form method="post" action="modifadmin.php"><?php $bdd = new PDO('mysql:host=localhost;dbname=rapport', 'root', ''); $sql = $bdd->query ('SELECT id_formulaire, dateactu , heure_eff, repas , num_commande , nom_cli , adr_cli, nb_semaine , ct , chantier FROM form WHERE email_user ="' .$email_selectionnee.'" AND nb_semaine= "'.$semaine_selectionne.'" '); while ($donnees = $sql->fetch()) { echo '<table id="table""> <div id="divform" class="form-group row"> <div class="col-xs-10" id="formulaire"> <tr> <tr><th> </th> <th> </th> <th> Date :</th> <th> Heures éffectuées :</th> <th> Prix repas :</th> <th> Numéro commande : </th> <th> Nom client :</th> <th> adresse client : </th> </tr> <td><input class="form-control" type="hidden" name="id_formulaire" value="' . $donnees['id_formulaire'] . '"></td> <td><input class="form-control" type="date" name="dateactu[]" value="' . $donnees['dateactu'] . '" id="input"></td> <td><input class="form-control" type="text" name="heure_eff[]" value="' . $donnees['heure_eff'] . '" placeholder="heure(s) éffectuée(s)" id="input"></td> <td><input class="form-control" placeholder="prix repas" type="text" value="' . $donnees['repas'] . '" name="repas[]" id="input"></td> <td><input class="form-control" type="text" name="num_commande[]" value="' . $donnees['num_commande'] . '" placeholder="numéro commande" id="input"></td> <td><input class="form-control" type="text" name="nom_cli[]" value="' . $donnees['nom_cli'] . '" placeholder="nom du client" id="input"></td> <td><input class="form-control" type="text" name="adr_cli[]" value="' . $donnees['adr_cli'] . '" placeholder="adresse client" id="input"></td> <td><select class="form-control" name="ct[]" id="input" type="text"><option>'.$donnees['ct'].'<option> Ct entretient </option><option> facturable </option></select></td> <td><select class="form-control" name="chantier[]" id="input" type="text"><option>'.$donnees['chantier'].'</option><option> Encours </option><option> Fini </option></select></td> </tr> </div> </div></table>'; } ?> </form><?php } } } catch (PDOException $e) { echo 'Erreur : ' . $e -> getMessage(); } ?>
Vous l'avez peut être pas vue mais j'ai un bouton modifier sur chaque ligne pour pendre l'id unique de chaque ligne (id_formulaire), bref tout ça marche bien c'est pour modifier que cela devient compliquer le code de l'update dans une autre page modifadmin.php :

Code : Tout sélectionner

<?php session_start(); $dateactu = $_POST['dateactu']; $heure_eff = $_POST['heure_eff']; $repas = $_POST['repas']; $num_commande = $_POST['num_commande']; $nom_cli = $_POST['nom_cli']; $adr_cli = $_POST['adr_cli']; $nb_semaine = $_POST['nb_semaine']; $email_user = $_POST['email_user']; $ct = $_POST['ct']; $chantier = $_POST['chantier']; try { //connexion BDD $bdd = new PDO('mysql:host=localhost;dbname=rapport', 'root', ''); $sql2 = $bdd->prepare ('UPDATE `form` SET `dateactu` = :dateactu , `heure_eff` = :heure_eff, `repas` = :repas , `num_commande` = :num_commande , `nom_cli` = :nom_cli , `adr_cli` = :adr_cli , `ct` = :ct , `chantier` = :chantier WHERE email_user ="[email protected]" AND nb_semaine= "2017-W01" AND id_formulaire = "'.$_GET['id_formulaire'].'" '); $sql2 -> execute(array(':dateactu' => $dateactu , ':heure_eff'=> $heure_eff, ':repas'=> $repas , ':num_commande' => $num_commande , ':nom_cli' => $nom_cli , ':adr_cli' => $adr_cli , ':ct'=> $ct, ':chantier'=> $chantier)); } catch (PDOException $e) { echo 'Erreur : ' . $e -> getMessage(); } ?>
lorsque j'appuie sur un bouton modifier j'ai des undefined index sur toutes mes lignes:

Code : Tout sélectionner

$dateactu = $_POST['dateactu']; $heure_eff = $_POST['heure_eff']; $repas = $_POST['repas']; $num_commande = $_POST['num_commande']; $nom_cli = $_POST['nom_cli']; $adr_cli = $_POST['adr_cli']; $nb_semaine = $_POST['nb_semaine']; $email_user = $_POST['email_user']; $ct = $_POST['ct']; $chantier = $_POST['chantier'];
peut-être que c'est une erreur toute simple mais je n'ai pas trouvé malgré les heures passé dessus , j'aimerais savoir aussi comment récuperer une variable qui est dans mon premierer form pour ma page modifadmin.php mais ça c'est une autre question, si vous avez une idée du pourquoi merci de me repondre !