javascript
  • php
  • jquery
  • html
  • zend-framework
  • 2016-08-11 134 views 2 likes 
    2

    我目前有一個使用Zend Framework的PHP項目。當用戶點擊一個按鈕時,我正在使用partial來獲取需要添加到頁面的HTML。問題是,HTML似乎返回HTML而不是字符串:將HTML轉換爲有效字符串

    document.getElementById("active_projects").innerHTML='<?php echo $this->partial("project/project/activeprojectstable.phtml", array(
        "headers" => $headers, 
        "active" => $this->active 
    
    ))?>'; 
    

    .innerHTML =需要一個字符串,但HTML有新的生產線,它不接受特殊字符。如何將HTML轉換爲有效的HTML字符串?


    更新:

    對於HTML的一個更好的想法被認爲是造成問題的部分生產,這是它的計算結果爲:

    error from html

    +0

    您需要更改'='到'('首先'的.innerHTML =」 ...。);'而是使用'.innerHTML(...) ' – ArtisticPhoenix

    +0

    @ArtisiticPhoenix我不這麼認爲:http://www.tizag.com/javascriptT/javascript-innerHTML.php –

    +0

    我在想jQuery風格,不管最後多加')'是否仍然是個問題。也許不是問題,而是一個問題。 – ArtisticPhoenix

    回答

    3

    嘗試封裝的部分成script標籤與type="text/template"。瀏覽器不知道它是什麼類型的腳本,因此它不會執行它。儘管如此,即使它們是多行的,您仍然可以訪問其內容。

    <script type="text/template" id="active_projects_template"> 
        <?php echo $this->partial("project/project/activeprojectstable.phtml", array(
        "headers" => $headers, 
        "active" => $this->active 
    ))?> 
    </script> 
    
    <script type="text/javascript"> 
        // ... 
        document.getElementById("active_projects").innerHTML=document.getElementById("active_projects_template").innerHTML; 
        // ... 
    </script> 
    

    類似的圖案在AngularJS正在使用的模板(type設置爲text/ng-template)。

    +0

    工作!謝謝! –

    0

    嘗試html_entity_decode: http://www.w3schools.com/php/func_string_html_entity_decode.asp

    <?php 
    $str = "&lt;&copy; W3S&ccedil;h&deg;&deg;&brvbar;&sect;&gt;"; 
    echo html_entity_decode($str); 
    ?> 
    

    HTML o代碼上面安輸出將是(查看源代碼):

    <!DOCTYPE html> 
    <html> 
    <body> 
    <© W3Sçh°°¦§> 
    </body> 
    </html> 
    

    代碼的瀏覽器輸出結果爲:

    <© W3Sçh°°¦§> 
    
    +0

    看起來像我越來越:'未捕獲的SyntaxError:無效或意外的標記',因爲HTML有一個新行 –

    相關問題