javascript
  • php
  • jquery
  • html
  • zend-framework
  • 2016-08-11 141 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有一个新行 –

    相关问题