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>';