Как я могу автоматически заполнить выпадающий список данными в таблице sugarcrm? - PullRequest
4 голосов
/ 03 марта 2012

Я хочу создать выпадающий список в пользовательском модуле sugarcrm и автоматически заполнить его данными из базы данных sugar. Параметры выпадающего списка должны быть получены из таблицы. Имя столбца будет отображаться в виде текста опции и ID в качестве значения опции.

Может ли кто-нибудь помочь мне с этим?

Ответы [ 2 ]

4 голосов
/ 06 марта 2012

Все раскрывающиеся списки встроены в языковой файл в custom / include / language и хранятся в массиве $ app_list_strings. По сути, вы должны выполнить запрос в языковом файле, а затем использовать результаты для построения массива для этого выпадающего списка.

Если вы посмотрите существующие примеры, то увидите что-то вроде этого.

       $GLOBALS['app_list_strings']['drop_down_name'] = array(
       'dropdown_value'=>'Dropdown Display',
       'dropdown_value2'=>'Dropdown Display2',
       );

Если вы делаете следующее:

       $new_array = array();
       while($row = $db->fetchByAssoc($result)) {
          $new_array[$row['key']] = $row['value'];
       }

       $GLOBALS['app_list_strings']['dropdown'] = $new_array;

Ты достигнешь того, что тебе нужно

0 голосов
/ 03 ноября 2017

вы можете создать поле функции. Внутри вашей функции напишите логику для извлечения данных из базы данных и затем верните ее, используя ассоциативный массив. См. Следующий код для справки:

Определение поля:

$dictionary['MODULENAME']['fields']['FIELDNAME']['function'] = 'getActiveReleases'; 

Функция:

function getActiveReleases()
{
    $query = "SELECT id, name FROM releases where deleted=0 and status='Active' order by list_order asc";
    $result = $GLOBALS['db']->query($query, false);

    $list = array();
    $list['']='';
    while (($row = $GLOBALS['db']->fetchByAssoc($result)) != null) {
        $list[$row['id']] = $row['name'];
    }

    return $list;
}
...