2015-02-20 23 views
6

Używam wersji CE SugarCRM 6.5.x. Chcę utworzyć funkcję zależną, w której mam pole rozwijane z listą nazwy szablonu wiadomości e-mail. I zgodnie z wyborem szablonu e-mail, textarea powinny być wypełnione treścią szablonu e-maila. Tak, osiągnąłem rezultat.Jak utworzyć zależną teksturę tinymce zgodnie z wyborem nazwy szablonu wiadomości e-mail?

Teraz zamiast normalnego tekstu, chcę pokazać ten tekst w edytorze tekstu tinarece. Teraz "przekonwertowałem" moje pole tekstowe na tekst edytora tinymce, przechodząc przez ten adres URL. Teraz, kiedy wybrałem szablon wiadomości e-mail z pola rozwijanego, ten tekst nie jest wypełniany odpowiednim tekstem.

To jest mój javascript do normalnego textarea, a jego praca

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

To jest mój kod do edytora TinyMCE textarea, który nie działa

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

gdzie ten ajax pobiera dane z tego check_email_template_subject. plik 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']; 
    }  
?> 

A to kod HTML edytora tinymce te xarea,

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

Odpowiedz

1

Zastosowanie setContent metoda aktywnego w edytorze TinyMCE

załóżmy, że masz wartość jako

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

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

tinyMCE.activeEditor.setContent(txtVal); 

nadzieję, że będzie działać :)

+0

Hej kolego, to działa. Ale teraz wydaje się nowy problem. Kiedy tekst jest wyświetlany w edytorze, stracił formatowanie, które ma .... więc proszę, pomóż mi zachować jego formatowanie bez zmian. –

+0

Zamiast podejmowania val() weź html jako var htmVal = $ ("rozwijana opcja: wybrana"). Html(); a następnie ustaw zawartość jako tinyMCE.activeEditor.setContent (htmVal); To zadziała :) – Mazzu

+0

Hej, dostaję te dane z pliku php. Ten kod wspomniałem powyżej. Proszę mnie wskazać, jak i co wprowadzić zmiany w powyższym kodzie. Ponieważ nie mam gdzie dodać '.html()'. –