0

我在 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 代码的某个地方犯了错误,可能连接到数据库。

4

2 回答 2

4

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

您需要做的是创建一个自定义 util 函数,然后告诉该字段的 vardefs 调用自定义 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 标记。运行修复/重建,以便构建 custom/application/Ext/Utils/custom_utils.ext.php。

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

'function' => 'getAccounts',

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

于 2013-08-12T18:21:08.677 回答
0

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

于 2020-03-05T13:18:48.100 回答