Formulaire + Modification checkbox

Eléphanteau du PHP | 36 Messages

09 mars 2015, 16:06

Bonjour,

voilà plusieurs jours que je bloque sur mon formulaire en PHP / MySQL...

Je suis dans le cas d'une modification de formulaire et j'aimerai contrôler sur des checkbox et champs texte si :

- La case est déjà coché et qu'on la décoche, alors on supprimer la ligne correspondant dans la base de données.
- La case n'est pas coché et on la coche, alors on ajoute une ligne dans la base de données.
- La case est coché et il n'y a pas d'infos dans la champ texte correspondant, alors on update la ligne correspondant dans la base de données.

Tout ceci devra être effectué au POST du formulaire...

Quelqu'un a une idée please ?

Voici mon script :

Code : Tout sélectionner

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") { $examens = $_POST['examens']; foreach($examens AS $exam_id) { $comment = $_POST['comments_'. $exam_id .'']; echo ''. $exam_id .' => '. $comment .'<br />'; } $epdid = array(); $_queryCheckExamens = $connexion->query("SELECT * FROM (SELECT * FROM bsv_examens_per_dossiers WHERE epd_dossiersid = $ad_id) EPD RIGHT JOIN bsv_examens E ON EPD.epd_examensid = E.ex_id WHERE E.ex_actif = 1 ORDER BY E.ex_ordre DESC"); $rows = $_queryCheckExamens->fetchAll(); foreach($rows as $row) { $epd_id[] = $row['epd_examensid']; } $test = array_diff($examens,$epdid); var_dump($test); } $query = $connexion->prepare("SELECT * FROM bsv_assurance_dossiers AD LEFT JOIN bsv_compagnies CO ON CO.co_id = AD.ad_compagnie LEFT JOIN bsv_gestionnaires G ON G.g_id = AD.ad_gestionnaire LEFT JOIN bsv_produits PRO ON PRO.pro_id = AD.ad_produit WHERE ad_id = :ad_id"); $query->execute(array(':ad_id'=>$ad_id)); $data = $query->fetch(); if ($data['ad_id'] == $ad_id) { echo ' <form action="'. $site .'test5.php?iddossiers='. $ad_id .'&actions=modifier" method="post" id="adddoc" class="add_form"> <fieldset id="rdv-assurance-examen" class="examen"> <legend>Examen</legend> <div class="infos-examen"> <table cellspacing="0" cellpadding="0" border="0" class="tableau-rdv-examen"> <tbody>'; $_queryCheckExamens = $connexion->query("SELECT * FROM (SELECT * FROM bsv_examens_per_dossiers WHERE epd_dossiersid = $ad_id) EPD RIGHT JOIN bsv_examens E ON EPD.epd_examensid = E.ex_id WHERE E.ex_actif = 1 ORDER BY E.ex_ordre DESC"); $rows = $_queryCheckExamens->fetchAll(); foreach($rows as $row) { $epd_id = $row['epd_examensid']; $epd_comments = utf8e($row['epd_comments']); $checked = $row['epd_dossiersid'] !== null ? 'checked' : ''; ?> <tr> <td><input type="checkbox" name="examens[]" value="<?php echo $row['ex_id']; ?>" <?php echo $checked; ?>> <label class="forcheckbox"><?php echo utf8e($row['ex_nom']); ?></label></td> <td><input type="text" name="comments_<?php echo $row['ex_id']; ?>" value="<?php echo isset($epd_comments) ? $epd_comments : ''; ?>"></td> </tr> <?php } echo ' </tbody> </table> </div> </fieldset> <div class="row-fluid"> <p class="span8"><input type="submit" class="btn btn-bsv span5" value="Modifier"></p> </div> </form>';

Eléphanteau du PHP | 36 Messages

11 mars 2015, 15:13

Un petit up, je suis toujours dans l'incapacité à solutionner cela...