如何在SugarCRM Community 6.5中的数据库表中填充下拉列表?

时间:2013-08-12 16:26:39

标签: php database drop-down-menu sugarcrm

我在SugarCRM论坛上问了这个问题,但也找不到答案。我正在尝试填充SugarCRM Community 6.5中的下拉列表。我使用的是PHP5,MySQL和Apache。我在下拉列表编辑器中创建了一个名为“oz_accounts”的自定义下拉列表,在我自己构建的自定义模块机器中创建了一个新字段,并根据下拉菜单将该字段与编辑,快速创建,详细信息和列表视图相关联。这是我使用的代码,结果是一个空白的下拉菜单:

    <?php
    require_once('include/entryPoint.php');
    $db = & DBManagerFactory::getInstance();
    $myQuery = "SELECT name FROM accounts";
    $Result = $db->query($myQuery);
    $new_array = array();
    while($row = $db->fetchByAssoc($Result)) {
         $new_array[$row['key']] = $row['value'];
    }
    $GLOBALS['app_list_strings']['oz_accounts'] = $new_array;

有人可以告诉我我做错了什么吗?我在phpmyadmin中测试了查询,它检索了我正在寻找的结果,所以我假设我必须在PHP代码的某个地方犯错,可能连接到数据库。

2 个答案:

答案 0 :(得分:4)

我在不久前发布了有关如何执行此操作的说明:http://www.eggsurplus.com/content/populate-a-dropdown-from-the-database/

您需要做的是创建一个自定义util函数,然后告诉vardef该字段调用自定义util函数。

//custom/Extension/application/Ext/Utils/getAccounts.php
function getAccounts(){
    static $accounts = null;
    if(!$accounts){
        global $db;
        $query = "SELECT id, name FROM accounts";
        $result = $db->query($query, false);

        $accounts = array();
        $accounts[''] = '';

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

文件名无关紧要。确保包含打开PHP标记。运行修复/重建,以便构建自定义/ application / Ext / Utils / custom_utils.ext.php。

然后在该字段的vardef定义中将函数设置为getAccounts:

'function' => 'getAccounts',

vardef更改后将需要修复/重建。

答案 1 :(得分:0)

问题在流程定义中,列表未显示