Bonjour, après migration de la V15 a la V18.0.5 en local, lors d’une modification rapide de la valeur d’un extrafields par le petit crayon (une date ou texte),
les valeurs des autres extrafields de type cases a cocher disparaissent .
J’ai suivi la procedure
opened 05:30PM - 01 Feb 24 UTC
Bug
### Bug
Bonjour a tous!
Je suis actuellement en train de personnaliser le mo… dule Ordre de fabrication et j’ai ajouté quelques champs supplémentaires.
Nous sommes confrontés à un problème étrange uniquement dans le module MO. Nous avons créé 4 champs supplémentaires de « Cases à cocher du tableau ».
-1 récupère les informations de la table des ressources
-2 récupérer les informations des utilisateurs
-1 récupère les informations d’un dictionnaire personnalisé (créé par un petit module personnalisé)
Le problème est que vous pouvez compléter et remplir tous les champs supplémentaires lorsque vous « modifiez » les informations, mais lorsque vous utilisez l’édition en ligne, 1 EF conserve les données mais les 3 autres perdent les informations.
La version de Dolibarr est la 18.0.3
Ci-dessous j’ajoute 3 images dans l’ordre d’exécution:
![Capture1_all Check boxes EF - complete](https://github.com/Dolibarr/dolibarr/assets/29465826/2cd79319-de99-4a88-9cf9-b035d61e3384)
![Capture2_all Check boxes EF - only 1 modification](https://github.com/Dolibarr/dolibarr/assets/29465826/8738e1b3-0c63-4a11-8824-7b275b2075bc)
![Capture3_all Check boxes EF - after modification](https://github.com/Dolibarr/dolibarr/assets/29465826/50003281-d1e6-486e-b781-4664fdcf6355)
Toute aide sera volontiers appréciée. :slight_smile:
Désolé pour mon français, c’est un texte traduit par Google. J’espère que c’est compréhensible.
C'était mon message sur le forum: https://www.dolibarr.fr/forum/t/les-extrafields-cases-a-cocher-du-tableau-sur-lordre-de-fabrication-suppriment-les-donnees-precedentes-sur-ces-champs-supplementaires/45465
### Environment Version
18.0.3
### Environment OS
_No response_
### Environment Web server
2.4.51
### Environment PHP
7.4.26
### Environment Database
Maria DB 10.6.5
### Environment URL(s)
_No response_
### Expected and actual behavior
_No response_
### Steps to reproduce the behavior
_No response_
### Attached files
_No response_
en modifiant sur le fichier core\class\extrafieds.class.php
Le problème a disparu .
//$value_arr = GETPOST("options_".$key, 'array'); // check if an array
//if (!empty($value_arr)) {
// $value_key = implode(',', $value_arr);
//} else {
// $value_key = '';
//}
$value_arr = GETPOST("options_".$key);
$attr = GETPOST("attribute");
$value_key = '';
if (!empty($value_arr) && $key == $attr){
$value_key = implode(',', $value_arr);
}elseif (empty($value_arr) && $key != $attr) {
$value_key = $object->array_options["options_".$key];
}
elseif ((empty($value_arr) && $key == $attr)){
$value_key = $value_arr;
}
elseif (!empty($value_arr) && empty($attr)){
$value_key = implode(',', $value_arr);
}
elseif(empty($value_arr) && empty($attr)){
$value_key = '';
}
Bonjour,
Par contre je viens de constater que le problème est toujours présent pour les booleans.
Lors de la modification d’un champ boolean tous les autres sont mis a false.
Je viens de rajouter une condition en desssous du code message precedent en m en inspirant concernent les booleans qui sont a empty si non posté .
} elseif (in_array($key_type, array('boolean'))) {
$value_arr = GETPOST("options_".$key);
$attr = GETPOST("attribute");
$value_key = '';
if ((empty($value_arr) && $key == $attr)){
$value_key = $value_arr;
}
elseif (!empty($value_arr) && $key == $attr){
$value_key = $value_arr;
}
else{
$value_key = $object->array_options["options_".$key];
}