json_encode不显示HTML

时间:2015-04-16 18:35:46

标签: php jquery html ajax

我从数据库中提取了一些数据,其中一些数据包含HTML个标记,例如&#34; <p>Hello</ p>&#34;。但是,当步骤数据通过返回时,它会在&#34; &lt;p&gt;Hello&lt;/p&gt;&#34;中显示json_encode。如何返回保存在数据库中的相同数据?

PHP:

$retorna = array(
    'conteudo_programatico' => $conteudo_programatico,
    'investimento' => $investimento,
    'coordenacao' => $coordenacao,
    'importante' => $importante
);

echo json_encode($retorna);

AJAX:

$(function(){
    $("button").click(function(){
        var id = $(this).attr("id");
        $.ajax({  
            type: "POST",
            data: {id: id},
            url: "paginas/ajax/form.php",
            dataType: "json",
            success: function(data){
                $("#cursos").slideDown();
                $(".call-conteudo").text(data['conteudo_programatico']);
                $(".call-investimento").text(data['investimento']);
                $(".call-coordenacao").text(data['coordenacao']);
                $(".call-importante").text(data['importante']);
            },
        });
    });
});

1 个答案:

答案 0 :(得分:3)

问题是你使用jQuery&#39; .text()

$(".call-conteudo").text(data['conteudo_programatico']);
// etc.

根据manual

  

我们需要知道此方法会转义提供的字符串   必要的,以便它在HTML中正确呈现。为此,它打电话   DOM方法.createTextNode()不会将字符串解释为   HTML

     

...

     

代码$( "div.demo-container" ).text( "<p>This is a test.</p>" );   将产生以下DOM输出:

 1 <div class="demo-container">
 2   &lt;p&gt;This is a test.&lt;/p&gt;
 3 </div>

您需要html()

$(".call-conteudo").html(data['conteudo_programatico']);
// etc.