From 92d614d16803ae8705191379b4ec33a87e3101cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=AFeul=20Rouquette?= <maieul@maieul.net> Date: Thu, 30 Jan 2020 21:34:58 +0100 Subject: [PATCH] =?UTF-8?q?Modification=20d'une=20r=C3=A9ponse=20:=20avant?= =?UTF-8?q?=20d'enregistrer=20les=20nouveaux=20r=C3=A9sultat,=20effacer=20?= =?UTF-8?q?TOUT=20les=20anciens=20r=C3=A9sultats,=20et=20pas=20uniquement?= =?UTF-8?q?=20pour=20les=20champs=20qui=20viennent=20d'=C3=AAtre=20post?= =?UTF-8?q?=C3=A9s.=20En=20effet,=20les=20nouvelles=20valeurs=20peuvent=20?= =?UTF-8?q?conditionner=20le=20non-affichage=20d'un=20champ=20pour=20laque?= =?UTF-8?q?lle=20une=20valeur=20avait=20=C3=A9t=C3=A9=20enregistr=C3=A9e?= =?UTF-8?q?=20avant.=20Dans=20ce=20cas=20il=20faut=20aussi=20effacer=20cet?= =?UTF-8?q?te=20valeur.=20Exemple=20-=20Le=20formulaire=20est=20configur?= =?UTF-8?q?=C3=A9=20de=20sorte=20que=20si=20la=20case=5F1=20est=20coch?= =?UTF-8?q?=C3=A9e,=20alors=20afficher=20le=20champ=20input=5F1.=20-=20Pre?= =?UTF-8?q?mier=20enregistrement=20de=20la=20r=C3=A9ponse=20:=20case=5F1?= =?UTF-8?q?=20coch=C3=A9e,=20champ=20input=5F1=20valant=20'toto'=20-=20Mod?= =?UTF-8?q?ification=20de=20la=20r=C3=A9ponse=20:=20case=5F1=20d=C3=A9coch?= =?UTF-8?q?=C3=A9e.=20=20=20-=20Avant=20ce=20commit,=20la=20valeur=20'toto?= =?UTF-8?q?'=20restait=20associ=C3=A9e=20=C3=A0=20case=5F1=20en=20base,=20?= =?UTF-8?q?=20=20faussant=20tableau=20d'analyse=20et=20autre=20=20=20-=20a?= =?UTF-8?q?pr=C3=A8s=20ce=20commit,=20ce=20n'est=20plus=20le=20cas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- paquet.xml | 2 +- traiter/enregistrement.php | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/paquet.xml b/paquet.xml index 021ae1a3..738df546 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@ <paquet prefix="formidable" categorie="communication" - version="4.0.2" + version="4.0.3" etat="stable" compatibilite="[3.1.0;3.2.*]" logo="images/formidable-64.png" diff --git a/traiter/enregistrement.php b/traiter/enregistrement.php index d3d617d9..7b43db96 100644 --- a/traiter/enregistrement.php +++ b/traiter/enregistrement.php @@ -127,12 +127,14 @@ function traiter_enregistrement_dist($args, $retours) { } // S'il y a bien des choses à modifier if ($champs) { - // On supprime d'abord les champs + // On supprime d'abord TOUT les champs, y compris ceux qui ne viennent pas d'être envoyé. + // En effet, ils pouvaient y avoir des champs remplis lors du précédent enregistrement + // Qui ne le sont plus au nouvel enregistrement, car la condition d'affichage (afficher_si) n'est plus remplie + // Dans ce cas il ne faut pas qu'ils continuent à être stockés en base, car cela peut fausser les affichages divers (type tableaux et autres) sql_delete( 'spip_formulaires_reponses_champs', array( - 'id_formulaires_reponse = '.$id_formulaires_reponse, - sql_in('nom', $champs) + 'id_formulaires_reponse = '.$id_formulaires_reponse ) ); -- GitLab