2013-02-22 33 views
1

添加TinyMCE的文本框,我希望我的用戶從選擇列表中選擇templateId,當用戶選擇然後查詢數據庫帶來基於templateId模板內容。然後,我想將模板內容顯示爲textarea,但它顯示TinyMCE textarea中的html標籤,而不是顯示設計(視圖)。如何使用AJAX

它的工作原理,只有當我表現出同樣的templateContents在頁面加載,但是當我嘗試從失敗的數據庫中獲取,以顯示相同的內容。

希望這一切都給你任何線索我所需要的。

在步驟1中的代碼工作正常...

<textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 50%"> 
    <?php echo htmlspecialchars($ResultArray[0]['Contents']); ?> 
</textarea> 

...但選擇我打電話選定模板的平變化值:

<select name="templateId" id="templateId" onchange="GetTemplateView(this.value);"> 
    <?php for($i=0; $i<count($ResultArray); $i++){ ?> 
    <option value="<?php echo $ResultArray[$i]['TemplateId']; ?>"><?php echo $ResultArray[$i]['Name']; ?></option> 
    <?php }?> 
</select> 

Ajax請求是:

function GetTemplateView(templateId) 
{ 
    var xmlhttp; 
    if (window.XMLHttpRequest) 
    { // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 
    } 
    else 
    { // code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
      if (navigator.appName == 'Microsoft Internet Explorer') 
       document.getElementById("templateView").outerHTML = xmlhttp.responseText; 
      else 
       document.getElementById("templateView").innerHTML = xmlhttp.responseText; 
     } 
    } 
    xmlhttp.open("GET", "js/GetTemplateView.php?id=" + templateId + "&encode=true", true); 
    xmlhttp.send(); 
} 

GetTemplateView.php:

<?php 
include_once("../classes/db_utility_class.php"); 
$ClassObj= new Cdb(); 
$input  = $_GET["id"]; 
$Encode  = $_GET["encode"]; 

if($input!=0) 
{ 
    $query = "SELECT Contents FROM mailtemplate WHERE TemplateId=".$input; 
    $result = $ClassObj->getRowFromDB($query); 
    if($result != "Error in query" || $result != "No Record Found") 
    { 
     if($Encode) 
     { 
      echo '<textarea id="ele1" name="ele1" rows="15" cols="80" style="width: 50%">'; 
      echo htmlspecialchars($result['Contents']); 
      echo '</textarea>'; 
     } 
     else 
      echo $result['Contents']; 
    } 
} 
?> 

回答

0

首先使用jquery.ajax更易於使用。

And 1.將tinyMCE存儲到processpage.php中的變量中。

  1. 並且在您的ajax調用的成功函數中,將它附加到您希望顯示的任何div或body。當你想

看一下例子代碼.CALL它。

<script> 
      $.ajax({ 
       url: processpage.php, 
       type: 'GET',      
       contentType: 'text/html', 
       dataType: 'text', 
       async: false, 
       data:{ 
            showTINYMCE : 'Yes' 
           }, 
       success: function(msg) 
       { 
        $('body').append(msg); 
       }, 
       error: function (msg) 
       { 
       } 
      }); 

</script> 

在你processpage.php:

if($_GET['showTINYMCE'] == 'Yes') 
{ 
$tinymce = "contains the tinymce";  
echo $tinymce; 
} 

這將做到這一點。

+0

我怎麼能夠發送選擇控件的值processpage.php – Bilal 2013-02-22 13:54:25

+0

你能解釋一下你越是想談談「選擇控制值」的東西。那麼只有我可以給你一個答案 – 2013-02-23 09:07:31