1

カスタム モジュールのフィールドの 1 つに AJAX 呼び出しを実装するにはどうすればよいですか。私の要件は、いくつかのドロップダウンを変更するときです。データベースをチェックインし、同じ画面の別のフィールドで結果を更新する必要があります。通常のモジュールについては、スクリプト コードを挿入して呼び出すことができる .tpl ファイルを参照してください。しかし、カスタム モジュールの場合、(ランタイムを生成している) キャッシュ ディレクトリ以外の .tpl ファイルは表示されませんでした。実装する方法はありますか。

Sugar Professional を使用しています。

4

1 に答える 1

2

従う必要がある手順は次のとおりです

  1. クエリ文字列で値を読み取り、結果を echo/print として処理する .php ファイルを作成します。
  2. カスタム モジュール ディレクトリ (例: /custom/modules/...) の editviewdefs.php に移動します。
  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();
    
    {}
    

    );

于 2011-06-15T01:19:17.977 に答える