Mise à jour d'enregistrement dans bd via formulaire
ecddu69 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un formulaire qui récupère les champs d'un enregistrement pour éventuellement les modifier. Si j'enregistre une première date de naissance ou de décès, celles-ci s'enregistre bien. Si je veux la ou les modifier, celles-ci s'affichent bien dans les champs prévus à cet effet. Mais si je les modifies ou même si je ne les modifies pas et que je valide le formulaire, celles-ci disparraissent de l'enregistrement. A noté que cela fonctionnait correectement avant le passage à PHP8.
Mon formulaire :
<style type="text/css"> a:hover {color:red;} a {text-decoration:none; color:yellow;} </style> <SCRIPT LANGUAGE="Javascript" SRC="date_nais.js"></script> <SCRIPT LANGUAGE="Javascript" SRC="date_dc.js"></script> <SCRIPT LANGUAGE="Javascript" SRC="date_mariag1.js"></script> <SCRIPT LANGUAGE="Javascript" SRC="date_mariag2.js"></script> <SCRIPT LANGUAGE="Javascript" SRC="date_mariag3.js"></script> <SCRIPT LANGUAGE="Javascript" SRC="date_mariag4.js"></script> <SCRIPT LANGUAGE="Javascript" SRC="date_divorce1.js"></script> <SCRIPT LANGUAGE="Javascript" SRC="date_divorce2.js"></script> <SCRIPT LANGUAGE="Javascript" SRC="date_divorce3.js"></script> <SCRIPT LANGUAGE="Javascript" SRC="date_divorce4.js"></script> <script> function ajout2_input() { var choix_dc=document.getElementById('lieu_naissance').value; if(choix_dc =='autre'){ document.getElementById('div_inputnais_autre').innerHTML='<font size="2" color="red">Précisez : Ville, cp, Département, PAYS</font><input type="text" name="lieu_naissance" id="lieu_naissance" size="55"/>'; document.getElementById('lieu_naissance').focus(); }else{ document.getElementById('div_inputnais_autre').innerHTML=''; } } function ajout3_input() { var choix_dc=document.getElementById('lieu_dc').value; if(choix_dc =='autre'){ document.getElementById('div_input_lieudc_autre').innerHTML='<font size="2" color="red">Précisez : Ville, cp, Département, PAYS</font><input type="text" name="lieu_dc" id="lieu_dc" size="55"/>'; document.getElementById('lieu_dc').focus(); }else{ document.getElementById('div_input_lieudc_autre').innerHTML=''; } } function ajout_lieu_mariag1_input() { var choix_dc=document.getElementById('lieu_mariage_1').value; if(choix_dc =='autre'){ document.getElementById('div_input_lieu_mariag1_autre').innerHTML='<font size="2" color="red">Précisez : Ville, cp, Département, PAYS</font><input type="text" name="lieu_mariage_1" id="lieu_mariage_1" size="55"/>'; document.getElementById('lieu_mariage_1').focus(); }else{ document.getElementById('div_input_lieu_mariag1_autre').innerHTML=''; } } function ajout_lieu_mariag2_input() { var choix_dc=document.getElementById('lieu_mariage_2').value; if(choix_dc =='autre'){ document.getElementById('div_input_lieu_mariag2_autre').innerHTML='<font size="2" color="red">Précisez : Ville, cp, Département, PAYS</font><input type="text" name="lieu_mariage_2" id="lieu_mariage_2" size="55"/>'; document.getElementById('lieu_mariage_2').focus(); }else{ document.getElementById('div_input_lieu_mariag2_autre').innerHTML=''; } } function ajout_lieu_mariag3_input() { var choix_dc=document.getElementById('lieu_mariage_3').value; if(choix_dc =='autre'){ document.getElementById('div_input_lieu_mariag3_autre').innerHTML='<font size="2" color="red">Précisez : Ville, cp, Département, PAYS</font><input type="text" name="lieu_mariage_3" id="lieu_mariage_3" size="55"/>'; document.getElementById('lieu_mariage_3').focus(); }else{ document.getElementById('div_input_lieu_mariag3_autre').innerHTML=''; } } function ajout_lieu_mariag4_input() { var choix_dc=document.getElementById('lieu_mariage_4').value; if(choix_dc =='autre'){ document.getElementById('div_input_lieu_mariag4_autre').innerHTML='<font size="2" color="red">Précisez : Ville, cp, Département, PAYS</font><input type="text" name="lieu_mariage_4" id="lieu_mariage_4" size="55"/>'; document.getElementById('lieu_mariage_4').focus(); }else{ document.getElementById('div_input_lieu_mariag4_autre').innerHTML=''; } } </SCRIPT> </head> <body> <center> <font size="5"><b><u>Modification d'un individu</u></b></font> <?php $id = !empty($_GET['id']) ? $_GET['id'] : NULL; $date_naissance = !empty($_GET['date_naissance']) ? $_GET['date_naissance'] : NULL; $cj1 = !empty($_POST['cj1']) ? $_POST['cj1'] : NULL; $cj2 = !empty($_POST['cj2']) ? $_POST['cj2'] : NULL; $cj3 = !empty($_POST['cj3']) ? $_POST['cj3'] : NULL; $cj4 = !empty($_POST['cj4']) ? $_POST['cj4'] : NULL; //echo '<pre>'; print_r($_GET); echo '</pre>'; exit; $result=mysql_query("SELECT * FROM individus WHERE id='$id'"); if ($row=mysql_fetch_array($result)) { echo "<form action='maj_bd_indiv.php' enctype='multipart/form-data' method='POST' value='envoyer' name='soumettre'>"; echo "<input type=hidden name=\"id\" value=$id>"; echo '<table>'; echo '<tr><td height="60"></td></tr>'; echo '<tr><td><b><u>NOM :</u></b></td><td><input name="nom" type="text" id="nom" value="'.$row['nom'].'" size="55" maxlength="55"></td></tr>'; ............... .................. //*****date de naissance echo '<tr><td height="20"></td></tr>'; echo '<tr><td><u>Date de naissance :</u></td> '; if (!empty($row['date_naissance'])) { echo '<td width=550px><select name="date_naissance" id="date_naissance" onchange="ajout_input();">'; echo '<option value="'.$row['date_naissance'].'">'.$row['date_naissance'].'</option>'; // ligne obligatoire pour avoir un changement a tous les coups echo '<option VALUE=""></option>'; echo '<option style="color:red;" value="autre">Saisie d\'une autre date</option>'; echo '</select>'; echo '<div id="div_input_autre"></div></td></tr>'; //div ou sera rajouté l'input par javascript } else { echo '<td><SELECT name="nais_expression1"> <OPTION VALUE=""></OPTION> <OPTION VALUE="Vers">Vers</OPTION> <OPTION VALUE="Avant">Avant</OPTION> <OPTION VALUE="Après">Après</OPTION> <OPTION VALUE="Entre">Entre</OPTION> </SELECT> <SELECT name="nais_jour1"> <OPTION VALUE=""></OPTION> <OPTION VALUE="1">1</OPTION> <OPTION VALUE="2">2</OPTION> <OPTION VALUE="3">3</OPTION> <OPTION VALUE="4">4</OPTION> <OPTION VALUE="5">5</OPTION> <OPTION VALUE="6">6</OPTION> <OPTION VALUE="7">7</OPTION> <OPTION VALUE="8">8</OPTION> <OPTION VALUE="9">9</OPTION> <OPTION VALUE="10">10</OPTION> <OPTION VALUE="11">11</OPTION> <OPTION VALUE="12">12</OPTION> <OPTION VALUE="13">13</OPTION> <OPTION VALUE="14">14</OPTION> <OPTION VALUE="15">15</OPTION> <OPTION VALUE="16">16</OPTION> <OPTION VALUE="17">17</OPTION> <OPTION VALUE="18">18</OPTION> <OPTION VALUE="19">19</OPTION> <OPTION VALUE="20">20</OPTION> <OPTION VALUE="21">21</OPTION> <OPTION VALUE="22">22</OPTION> <OPTION VALUE="23">23</OPTION> <OPTION VALUE="24">24</OPTION> <OPTION VALUE="25">25</OPTION> <OPTION VALUE="26">26</OPTION> <OPTION VALUE="27">27</OPTION> <OPTION VALUE="28">28</OPTION> <OPTION VALUE="29">29</OPTION> <OPTION VALUE="30">30</OPTION> <OPTION VALUE="31">31</OPTION> </SELECT> <SELECT name="nais_mois1"> <OPTION VALUE=""></OPTION> <OPTION VALUE="janvier">janvier</OPTION> <OPTION VALUE="février">février</OPTION> <OPTION VALUE="mars">mars</OPTION> <OPTION VALUE="avril">avril</OPTION> <OPTION VALUE="mai">mai</OPTION> <OPTION VALUE="juin">juin</OPTION> <OPTION VALUE="juillet">juillet</OPTION> <OPTION VALUE="août">août</OPTION> <OPTION VALUE="septembre">septembre</OPTION> <OPTION VALUE="octobre">octobre</OPTION> <OPTION VALUE="novembre">novembre</OPTION> <OPTION VALUE="décembre">décembre</OPTION> </SELECT> <input name="nais_an1" type="text" id="nais_an1" size="3" maxlength="4" onFocus="if (this.value == \'Année\') {this.value = \'\';}" onBlur="if (this.value == \'\') {this.value = \'Année\';}"/> <SELECT name="nais_expression2"> <OPTION VALUE=""></OPTION> <OPTION VALUE="et avant">et avant</OPTION> <OPTION VALUE="et après">et après</OPTION> <OPTION VALUE="et">et</OPTION> </SELECT> <SELECT name="nais_jour2"> <OPTION VALUE=""></OPTION> <OPTION VALUE="1">1</OPTION> <OPTION VALUE="2">2</OPTION> <OPTION VALUE="3">3</OPTION> <OPTION VALUE="4">4</OPTION> <OPTION VALUE="5">5</OPTION> <OPTION VALUE="6">6</OPTION> <OPTION VALUE="7">7</OPTION> <OPTION VALUE="8">8</OPTION> <OPTION VALUE="9">9</OPTION> <OPTION VALUE="10">10</OPTION> <OPTION VALUE="11">11</OPTION> <OPTION VALUE="12">12</OPTION> <OPTION VALUE="13">13</OPTION> <OPTION VALUE="14">14</OPTION> <OPTION VALUE="15">15</OPTION> <OPTION VALUE="16">16</OPTION> <OPTION VALUE="17">17</OPTION> <OPTION VALUE="18">18</OPTION> <OPTION VALUE="19">19</OPTION> <OPTION VALUE="20">20</OPTION> <OPTION VALUE="21">21</OPTION> <OPTION VALUE="22">22</OPTION> <OPTION VALUE="23">23</OPTION> <OPTION VALUE="24">24</OPTION> <OPTION VALUE="25">25</OPTION> <OPTION VALUE="26">26</OPTION> <OPTION VALUE="27">27</OPTION> <OPTION VALUE="28">28</OPTION> <OPTION VALUE="29">29</OPTION> <OPTION VALUE="30">30</OPTION> <OPTION VALUE="31">31</OPTION> </SELECT> <SELECT name="nais_mois2"> <OPTION VALUE=""></OPTION> <OPTION VALUE="janvier">janvier</OPTION> <OPTION VALUE="février">février</OPTION> <OPTION VALUE="mars">mars</OPTION> <OPTION VALUE="avril">avril</OPTION> <OPTION VALUE="mai">mai</OPTION> <OPTION VALUE="juin">juin</OPTION> <OPTION VALUE="juillet">juillet</OPTION> <OPTION VALUE="août">août</OPTION> <OPTION VALUE="septembre">septembre</OPTION> <OPTION VALUE="octobre">octobre</OPTION> <OPTION VALUE="novembre">novembre</OPTION> <OPTION VALUE="décembre">décembre</OPTION> </SELECT> <input name="nais_an2" type="text" id="nais_an2" size="3" maxlength="4" onFocus="if (this.value == \'Année\') {this.value = \'\';}" onBlur="if (this.value == \'\') {this.value = \'Année\';}"/></td></tr> <tr><td><font size="1">Toutes les cases sont optionnelles.</font></td></tr>'; } $select2 = 'SELECT * FROM lieux_ville ORDER BY lieux ASC'; $result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() ); echo '<tr><td><u>Lieu de naissance :</u></td> '; echo '<td><select name="lieu_naissance" id="lieu_naissance" onchange="ajout2_input();">'; echo '<option value="'.$row['lieu_naissance'].'">'.$row['lieu_naissance'].'</option>'; echo '<option style="color:red;" value="autre">Saisie d\'un autre lieu</option>'; while($row2 = mysql_fetch_array($result2)) { echo '<option value="'.$row2['lieux'].'">'.$row2['lieux'].'</option>'; } echo '</select>'; echo '<div id="div_inputnais_autre"></div></td></tr>'; //div ou sera rajouté l'input par javascript // c'est pareil pour la date de décès ........... //**** Date de décès ***** echo '<tr><td><u>Date de décès :</u></td> '; if (!empty($row['date_dc'])) { echo '<td><select name="date_dc" id="date_dc" onchange="ajout_inputdc();">'; echo '<option value="'.$row['date_dc'].'">'.$row['date_dc'].'</option>'; echo '<option VALUE=""></option>'; echo '<option style="color:red;" value="autre">Saisie d\'une autre date</option>'; echo '</select>'; echo '<div id="div_inputdc_autre"></div></td></tr>'; } else { echo '<td><SELECT name="dc_expression3"> <OPTION VALUE=""></OPTION> <OPTION VALUE="Vers">Vers</OPTION> <OPTION VALUE="Avant">Avant</OPTION> <OPTION VALUE="Après">Après</OPTION> <OPTION VALUE="Entre">Entre</OPTION> </SELECT> <SELECT name="dc_jour3"> <OPTION VALUE=""></OPTION> <OPTION VALUE="1">1</OPTION> <OPTION VALUE="2">2</OPTION> <OPTION VALUE="3">3</OPTION> <OPTION VALUE="4">4</OPTION> <OPTION VALUE="5">5</OPTION> <OPTION VALUE="6">6</OPTION> <OPTION VALUE="7">7</OPTION> <OPTION VALUE="8">8</OPTION> <OPTION VALUE="9">9</OPTION> <OPTION VALUE="10">10</OPTION> <OPTION VALUE="11">11</OPTION> <OPTION VALUE="12">12</OPTION> <OPTION VALUE="13">13</OPTION> <OPTION VALUE="14">14</OPTION> <OPTION VALUE="15">15</OPTION> <OPTION VALUE="16">16</OPTION> <OPTION VALUE="17">17</OPTION> <OPTION VALUE="18">18</OPTION> <OPTION VALUE="19">19</OPTION> <OPTION VALUE="20">20</OPTION> <OPTION VALUE="21">21</OPTION> <OPTION VALUE="22">22</OPTION> <OPTION VALUE="23">23</OPTION> <OPTION VALUE="24">24</OPTION> <OPTION VALUE="25">25</OPTION> <OPTION VALUE="26">26</OPTION> <OPTION VALUE="27">27</OPTION> <OPTION VALUE="28">28</OPTION> <OPTION VALUE="29">29</OPTION> <OPTION VALUE="30">30</OPTION> <OPTION VALUE="31">31</OPTION> </SELECT> <SELECT name="dc_mois3"> <OPTION VALUE=""></OPTION> <OPTION VALUE="janvier">janvier</OPTION> <OPTION VALUE="février">février</OPTION> <OPTION VALUE="mars">mars</OPTION> <OPTION VALUE="avril">avril</OPTION> <OPTION VALUE="mai">mai</OPTION> <OPTION VALUE="juin">juin</OPTION> <OPTION VALUE="juillet">juillet</OPTION> <OPTION VALUE="août">août</OPTION> <OPTION VALUE="septembre">septembre</OPTION> <OPTION VALUE="octobre">octobre</OPTION> <OPTION VALUE="novembre">novembre</OPTION> <OPTION VALUE="décembre">décembre</OPTION> </SELECT> <input name="dc_an3" type="text" id="dc_an3" size="3" maxlength="4" onFocus="if (this.value == \'Année\') {this.value = \'\';}" onBlur="if (this.value == \'\') {this.value = \'Année\';}"/> <SELECT name="dc_expression4"> <OPTION VALUE=""></OPTION> <OPTION VALUE="et avant">et avant</OPTION> <OPTION VALUE="et après">et après</OPTION> <OPTION VALUE="et">et</OPTION> </SELECT> <SELECT name="dc_jour4"> <OPTION VALUE=""></OPTION> <OPTION VALUE="1">1</OPTION> <OPTION VALUE="2">2</OPTION> <OPTION VALUE="3">3</OPTION> <OPTION VALUE="4">4</OPTION> <OPTION VALUE="5">5</OPTION> <OPTION VALUE="6">6</OPTION> <OPTION VALUE="7">7</OPTION> <OPTION VALUE="8">8</OPTION> <OPTION VALUE="9">9</OPTION> <OPTION VALUE="10">10</OPTION> <OPTION VALUE="11">11</OPTION> <OPTION VALUE="12">12</OPTION> <OPTION VALUE="13">13</OPTION> <OPTION VALUE="14">14</OPTION> <OPTION VALUE="15">15</OPTION> <OPTION VALUE="16">16</OPTION> <OPTION VALUE="17">17</OPTION> <OPTION VALUE="18">18</OPTION> <OPTION VALUE="19">19</OPTION> <OPTION VALUE="20">20</OPTION> <OPTION VALUE="21">21</OPTION> <OPTION VALUE="22">22</OPTION> <OPTION VALUE="23">23</OPTION> <OPTION VALUE="24">24</OPTION> <OPTION VALUE="25">25</OPTION> <OPTION VALUE="26">26</OPTION> <OPTION VALUE="27">27</OPTION> <OPTION VALUE="28">28</OPTION> <OPTION VALUE="29">29</OPTION> <OPTION VALUE="30">30</OPTION> <OPTION VALUE="31">31</OPTION> </SELECT> <SELECT name="dc_mois4"> <OPTION VALUE=""></OPTION> <OPTION VALUE="janvier">janvier</OPTION> <OPTION VALUE="février">février</OPTION> <OPTION VALUE="mars">mars</OPTION> <OPTION VALUE="avril">avril</OPTION> <OPTION VALUE="mai">mai</OPTION> <OPTION VALUE="juin">juin</OPTION> <OPTION VALUE="juillet">juillet</OPTION> <OPTION VALUE="août">août</OPTION> <OPTION VALUE="septembre">septembre</OPTION> <OPTION VALUE="octobre">octobre</OPTION> <OPTION VALUE="novembre">novembre</OPTION> <OPTION VALUE="décembre">décembre</OPTION> </SELECT> <input name="dc_an4" type="text" id="dc_an4" value="Année" size="3" maxlength="4" onFocus="if (this.value == \'Année\') {this.value = \'\';}" onBlur="if (this.value == \'\') {this.value = \'Année\';}"/></td></tr> <tr><td><font size="1">Toutes les cases sont optionnelles.</font></td></tr>'; }
Merci pour votre aide !
Windows / Chrome 132.0.0.0
- Mise à jour d'enregistrement dans bd via formulaire
- Whatsapp formulaire opposition - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mise a jour chromecast - Accueil - Guide TV et vidéo
- Mise a jour kindle - Guide
3 réponses
Bonjour,
Ton code utilise l'ancienne extension mysql_*
Sauf qu'elle est obsolète. Il faut modifier ton code pour utiliser PDO ou mysqli
pour réécrire ton code en PDO, tu peux regarder cet exemple
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Au passage, profites en pour remettre ton code un peu plus au propre. ( en plaçant le maximum de code php en dehors du html .. par exemple, tout ce qui concerne les requêtes sql, à placer dans un fichier à part et/ou de préférence AVANT tout code HTML )
Et pour les dates, il y a les input type=date pour enregistrer dans la BDD Y-m-d et type datetime-local pour enregistrer Y-m-d 00:00:00, c'est à dire la date et l'heure avec toujours la possibilité de définir une date par défaut issue de la BDD avec l'option value =<?php echo .... ?>
C'est simple, rapide et accessible pour tout et tout le monde sans prise de tête !!
Bonjour,
J'ai franchement du mal à comprendre l'emploi de Javascript pour un truc aussi simple à faire avec PHP et bien sur, je ne parle pas de l'emploi d'un PHP obsolète. C'est vraiment brouillon, le code PHP doit être dans un fichier style modelMachin.php et le code JavaScript dans un fichier modelTruc.js.
Pour bien faire, le 1er doit être dans un répertoire model/ et le second dans un répertoire public/js/ par exemple.
Mais bon, il en faut pour tous les gout et il doit certainement y avoir des gents courageux pour écrire beaucoup de lignes pour faire ce qu'on peut faire en très peu de lignes.
Rappelez moi la 1er devise de la programmation, faire beaucoup avec très peu [de travail]. Je garderais toujours en mémoire les premier mots de mon prof d'informatique : "Si vous êtes un fainéant, vous êtes à votre place ici, l'informatique, c'est réfléchir, écrire et ne plus rien faire, juste glander en surveillant de temps en temps que tout se passe bien, éventuellement mettre à jour le code !!!"
Si c'est bien structurer, la MàJ est simple à faire ...