如何根据电子邮件模板名称的选择创建依赖的同义词文本区域

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

本文关键字:创建 选择 依赖 同义词 区域 文本 何根 电子邮件      更新时间:2024-01-31

我使用的是SugarCRM 6.5.x CE版本。我想做一个依赖的功能,我有一个下拉字段和电子邮件模板名称列表。根据电子邮件模板的选择,文本区域应填写电子邮件模板正文。所以,我已经取得了结果。

现在,我想在tinymce编辑器文本区域中显示这个正文,而不是普通的文本区域。现在,我已经通过这个url将我的文本区域"转换"为tinymce编辑器文本区域如何将文本区域转换为tinymse编辑器

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

这是我为普通文本区域编写的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编辑器文本区域编写的代码,它不工作

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'];
    }       
?>

这是tinymce编辑器texare,的html代码

<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 );

希望它能起作用:)