diff --git a/paquet.xml b/paquet.xml index 021ae1a365b97761cd7b98ee33ababf5af9989e0..738df5467b53b6d3dcd88b66bc2ea0a7f31608d1 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 d3d617d986f4e0ec6ffc9700e2e8330290657286..7b43db96aac2b5ad05bf395fdf923173d973ab58 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 ) );