2011-09-19 87 views
1

我通過php將它的內容發送給javascript,從而生成一堆tinymce編輯框。jQuery從PHP腳本接收html變量的問題

我做這樣的事情

<script> 
addBox('<?$content?>'); 
</script> 

的問題是,每次發送的文本具有一個「/」字符的功能被打破了返回一個錯誤,如:

Uncaught SyntaxError: Unexpected token ILLEGAL 

我發現它至少用這個字符返回這個錯誤......不知道它是否會與其他人發生。這個函數在調用時出錯,如:

addBox("&lt;p&gt;Fundada em 2000 e inserida no &lt;strong&gt;Grupo CIL&lt;/strong&gt;, a CilNet &amp;eacute; uma empresa de Servi&amp;ccedil;os de Engenharia na &amp;aacute;rea das Tecnologias de Informa&amp;ccedil;&amp;atilde;o, com compet&amp;ecirc;ncias em Redes de Comunica&amp;ccedil;&amp;atilde;o de Dados, Voz e V&amp;iacute;deo.&lt;/p&gt; 
&lt;p&gt;Tendo como base uma larga experi&amp;ecirc;ncia no mercado nacional, a CilNet assume-se como um parceiro tecnol&amp;oacute;gico no sector empresarial, com especializa&amp;ccedil;&amp;atilde;o em solu&amp;ccedil;&amp;otilde;es tecnol&amp;oacute;gicas pioneiras a n&amp;iacute;vel mundial.&amp;nbsp;&lt;/p&gt;"); 

任何人都可以幫忙嗎?

爲addBox的代碼如下:

function addBox(text){ 
    elem = "txt" + window.counter; 

    var tiny = $.ajax({ 
     type: "POST", 
     url: "inc/ajax.php?act=inserebox", 
     data: "value=txt" + window.counter + "&text="+encodeURIComponent(text), 
     async: false 
    }).responseText; 

    $('.more_boxes').append(tiny); 
    //$(tiny).append('.more_boxes'); 


    tinyMCE.init({ 
     url:'../js/tinymce/jscripts/tiny_mce/plugins/ibrowser', 
     mode:"exact", 
     elements: elem, 
     theme:"advanced", 
     height:"220", 
     entity_encoding : "raw", 
     plugins : "safari,pagebreak,style,table,advimage,advlink,emotions,iespell,media,searchreplace,print,contextmenu,paste,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,inlinepopups,ibrowser", 
     theme_advanced_toolbar_location : "top", 
     theme_advanced_toolbar_align : "left", 
     theme_advanced_statusbar_location : "bottom", 
     theme_advanced_resizing : false 
    }); 
    window.counter+=1; 

    return true; 
} 
+0

addBox在做什麼?絕對聞起來像一個編碼問題。 –

+0

問題是在addBox調用不在函數本身... – jribeiro

+0

你試過解碼你的Html嗎?http://www.opinionatedgeek.com/dotnet/tools/htmlencode/decode.aspx –

回答

1

您可以使用PHP的內置addslashes他們得到傳遞給TinyMCE的對話框之前逃脫非法字符。在將它傳遞給JS腳本之前,您需要對$ content var執行此操作。

編輯:

嘗試解碼HTML和addslashes的組合是這樣的:

<?php 
    // Code to create $content var here // 
    $content = addSlashes($content); 
?> 

<script> 
    <![CDATA[ 
     addBox('<?php echo $content; ?>'); 
    ]]> 
</script> 

如果你不<![CDATA[]]>附上JavaScript,然後如果angle'd括號,你會得到錯誤被發現,因爲它會被解釋爲HTML標籤的開始。

希望這會有所幫助!

+0

感謝repply不幸的問題仍然存在......它改爲\t \t \t \t \t \t \t $內容=和addslashes($行向> content); \t \t \t \t \t \t \t $這 - >出=」 '; – jribeiro

+0

@jrbeiro編輯。 – dSquared

+0

嘿dSquared !!謝謝你的提示。起初,我得到了一個「意外的標記:<」,然後我把所有的東西放在同一行://我擺脫了那個錯誤,但它仍然不起作用...現在它似乎打破了新行:/ – jribeiro