我正在从数据库中获取一些数据,其中一些数据有 HTML
诸如“<p>Hello</ p>
”之类的标签。但是,当单步执行数据返回时,它会在“<p>Hello</p>
”中显示 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']);
},
});
});
});
最佳答案
问题是你使用了 jQuery 的 .text()
:
$(".call-conteudo").text(data['conteudo_programatico']);
// etc.
根据manual :
We need to be aware that this method escapes the string provided as necessary so that it will render correctly in HTML. To do so, it calls the DOM method .createTextNode(), does not interpret the string as HTML
...
The code
$( "div.demo-container" ).text( "<p>This is a test.</p>" );
will produce the following DOM output:
1 <div class="demo-container">
2 <p>This is a test.</p>
3 </div>
您需要 html()
:
$(".call-conteudo").html(data['conteudo_programatico']);
// etc.
关于php - json_encode 不显示 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29683245/