如何根据电子邮件模板名称的选择创建依赖的tinymce textarea?

How to create dependent tinymce textarea according to the selection of email template name?

我正在使用 SugarCRM 6.5.x CE 版本。我想在我有一个带有电子邮件模板名称列表的下拉字段的地方创建一个依赖功能。并且根据电子邮件模板的选择,textarea 应填充电子邮件模板正文。所以,我达到了结果。

现在,我想在 tinymce 编辑器 textarea 中显示此正文,而不是普通的 textarea。现在,通过这个 url How to convert textarea into tinymce editor

,我将 "convert" 我的 textarea 变成了 tinymce 编辑器 textarea

现在,当我从下拉字段中选择电子邮件模板时,这个 tinymce 文本区域不会填充相应的正文。

这是我的 javascript 普通文本区域,它的工作原理

function display_text(){
    if(typeof(document.getElementsByName('email_template_c')[0].value) != "undefined"){
        var custom_data = document.getElementsByName('email_template_c')[0].value;
        if(custom_data != ''){
            $.ajax({
                url:'index.php?entryPoint=check_email_template_subject',
                data:{new_custom_data: custom_data},
                success: function(data){
                    if(data!= ''){
                        document.getElementsByName("email_template_body_c")[0].value = data;
                        SUGAR.util.callOnChangeListers(document.getElementsByName("email_template_body_c")[0]);
                    }else{
                        document.getElementsByName("email_template_body_c")[0].value = '';
                        SUGAR.util.callOnChangeListers(document.getElementsByName("email_template_body_c")[0]);
                    }
                }
            });
        }       
    }
}

这是我的 tinymce 编辑器 textarea 代码,它不起作用

function display_text(){
    if(typeof(document.getElementsByName('email_template_c')[0].value) != "undefined"){
        var custom_data = document.getElementsByName('email_template_c')[0].value;
        if(custom_data != ''){
            $.ajax({
                url:'index.php?entryPoint=check_email_template_subject',
                data:{new_custom_data: custom_data},
                success: function(data){
                    if(data!= ''){
                        $("p").parent(".mceContentBody").val(data);
                        SUGAR.util.callOnChangeListers($("p").parent(".mceContentBody").val(data));
                    }else{
                        $("p").parent(".mceContentBody").val();
                        SUGAR.util.callOnChangeListers($("p").parent(".mceContentBody").val());
                    }
                }
            });
        }       
    }
}

这个 ajax 从这个 check_email_template_subject.php 文件中获取数据的地方

<?php
    global $db; 

    if($_REQUEST['new_custom_data'] != null){
        $template_id = urldecode($_REQUEST['new_custom_data']);
        $query1 = "SELECT body FROM email_templates WHERE id = '$template_id'";
        $result1 = $db->query($query1);
        $row1 = $db->fetchByAssoc($result1);
        echo $row1['body'];
    }       
?>

这是htmltinymce编辑器texarea的代码,

<html>
<head xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="X-UA-COMPATIBLE" content="IE=7">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body dir="ltr" id="tinymce" class="mceContentBody" contenteditable="true">
<p>//Here should come email template body text
<br>
</p>
</body>
</html>

在tinyMCE中使用setContent激活编辑器的方法

假设您的价值为

var txtVal = $(".dropdown").val(); // dropdown value 

//set value as in your active tinyMCE's textarea editor

tinyMCE.activeEditor.setContent(txtVal );

希望它会起作用:)