diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index e2986615ddea536818433d5f273a46afe9276836..f9629f9bdf26e1078c8d6ae4dd1005a4556fab36 100755 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -688,9 +688,10 @@ class ExtraFields elseif ($type == 'sellist') { $out='<select name="options_'.$key.'">'; - - $InfoFieldList = explode(":", $param); - + + $InfoFieldList = explode(":", array_keys($param['options'])[0]); + + var_export($param['options']); // 0 1 : tableName // 1 2 : label field name Nom du champ contenant le libelle // 2 3 : key fields name (if differ of rowid) @@ -703,6 +704,7 @@ class ExtraFields $sql = 'SELECT '.$keyList.', '.$InfoFieldList[1]; $sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0]; + dol_syslog(get_class($this).':showInputField:$type=sellist sql='.$sql); $resql = $this->db->query($sql); if ($resql) @@ -828,15 +830,16 @@ class ExtraFields } elseif ($type == 'sellist') { - $InfoFieldList = explode(":", $params); + $InfoFieldList = explode(":", array_keys($params['options'])[0]); $keyList='rowid'; if (count($InfoFieldList)==3) $keyList=$InfoFieldList[2]; + $sql = 'SELECT '.$InfoFieldList[1]; $sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0]; - $sql.= ' where '.$keyList.'="'.$value.'"'; - + $sql.= ' where '.$keyList.'="'.$this->db->escape($value).'"'; + dol_syslog(get_class($this).':showOutputField:$type=sellist sql='.$sql); $resql = $this->db->query($sql); if ($resql) {