SugarCRM реализует вызовы AJAX в полях Custom Module - PullRequest
1 голос
/ 09 июня 2011

Как я могу реализовать вызовы AJAX для одного из моих пользовательских модулей? Мое требование - когда мы меняем какой-либо выпадающий список, он должен проверить базу данных и обновить результат в другом поле того же экрана. Для нормальных модулей я вижу .tpl файлы, куда я могу вставить код скрипта и вызвать. Но для пользовательских модулей я не видел файлы .tpl, кроме каталога кеша (который генерирует время выполнения). Есть ли способ реализовать.

Я использую Sugar Professional.

1 Ответ

2 голосов
/ 15 июня 2011

Вот шаги, которые необходимо выполнить

  1. Создайте файл .php, который будет читать значения в строке запроса и обрабатывать результат как echo / print.
  2. Перейти кeditviewdefs.php в каталоге пользовательских модулей (например, /custom/modules/...)
  3. Найдите имя вашего поля и вызовите функцию javascript

        array (
            'name' => 'days_required_c',
            'label' => 'LBL_DAYS_REQUIRED',
            'displayParams' => 
            array (
              'field' => 
              array (
                'onChange' => 'setRenewalDate();',
              ),
            ),
          ),
    
  4. Здесь RenewalDate - это имя вашей функции JavaScript.

  5. Создайте функцию сценария, которая будет вызывать функциональность AJAX, как показано ниже.

    var connectionObject = 
    YAHOO.util.Connect.asyncRequest ("GET", "getnextnum.php", callback);
    YAHOO.util.Event.onContentReady("EditView", function () {
        ldelim
    } 
    
    initEditView(document.forms.EditView);
    
    //alert("Loaded"); 
    //document.getElementById("keyid_c").value = initCall();
    
    {}
    

    );

...