【问题标题】:V-Tiger 6 How to make a Pick List with Database valueV-Tiger 6 如何制作具有数据库值的选择列表
【发布时间】:2016-05-16 09:55:34
【问题描述】:

我是非常新的 V-Tiger CRM。我想要实现的是。我在 Create Vendor 表单中有一个自定义选项列表。我知道我可以通过添加 PickList 值来填充它。但我想从我的自定义数据库表中获取国籍。 我的国籍表看起来像(nationality_id nationality_name)。我需要将这些值提取到我的 vendore 创建表单中的自定义选项列表中

【问题讨论】:

    标签: vtiger picklist vtigercrm


    【解决方案1】:

    您可以使用如下自定义来实现它:

    1. 打开modules\Vendors\views\Edit.php

    process函数中添加以下代码:

    $sql_get = 'SELECT * FROM nationality_table_name'; 
    $sql_get_result =  $adb->query($sql_get); 
    for($i=0;$i<$adb->num_rows($sql_get_result);$i++){
        $nationality[$i]['code'] = $adb->query_result($sql_get_result,$i,'nationality_id'); 
        $nationality[$i]['name'] = $adb->query_result($sql_get_result,$i,'nationality_name'); 
    }    
    $viewer->assign('nationality', $nationality);    
    parent::process($request);
    

    2:在给定位置创建新文件

    \layouts\vlayout\modules\Vendors\uitypes\Picklist.tpl

    {strip}
    {assign var="FIELD_INFO" value=Zend_Json::encode($FIELD_MODEL->getFieldInfo())}
    {assign var=PICKLIST_VALUES value=$FIELD_MODEL->getPicklistValues()}
    {assign var="SPECIAL_VALIDATOR" value=$FIELD_MODEL->getValidator()}
    {assign var=FIELD_NAME value=$FIELD_MODEL->getFieldName()}
    
    {assign var=FIELD_NAME value=$FIELD_MODEL->getFieldName()}
    
    {if $FIELD_NAME eq 'nationality_dropdown_name'}
    <select class="chzn-select {if $OCCUPY_COMPLETE_WIDTH} row-fluid {/if}" name="{$FIELD_NAME}" data-validation-engine="validate[{if $FIELD_MODEL->isMandatory() eq true} required,{/if}funcCall[Vtiger_Base_Validator_Js.invokeValidation]]" data-fieldinfo='{$FIELD_INFO|escape}' {if !empty($SPECIAL_VALIDATOR)}data-validator='{Zend_Json::encode($SPECIAL_VALIDATOR)}'{/if} data-selected-value='{$FIELD_MODEL->get('fieldvalue')}'>
     {if $FIELD_MODEL->isEmptyPicklistOptionAllowed()}<option value="">{vtranslate('LBL_SELECT_OPTION','Vtiger')}</option>{/if}
     {foreach item=PICKLIST_VALUE key=PICKLIST_NAME from=$nationality}
                <option value="{$PICKLIST_VALUE['code']}" {if trim(decode_html($FIELD_MODEL->get('fieldvalue'))) eq trim($PICKLIST_VALUE['code'])} selected {/if}>{$PICKLIST_VALUE['name']}</option>
     {/foreach}
     </select>
     {/if}     
    {/strip}
    

    请根据您的字段名更新代码并进行测试。干杯!!

    【讨论】:

    • 您好,感谢您的回复....我正在使用 Vtiger 6.4。可能是因为你建议的两个地点都不在我身边。在布局中,我有供应商。但是在 Vendor 文件夹中,我是资源文件夹,而在该文件夹中只是一个 js 文件。在模块区域中,我的文件夹结构与供应商所说的相同。在里面我没有views文件夹,而是我有Model文件夹和vendors.php文件
    • 如果文件夹不存在,那么您已经创建了这些文件夹。例如如果视图文件夹不存在,则在特定位置创建视图文件夹并创建新的 Edit.php 文件。您可以参考其他模块的 Edit.php 格式
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 2011-01-08
    • 1970-01-01
    相关资源
    最近更新 更多