Jquery / json使用mysql db中的html拉字符串

时间:2016-01-11 19:35:08

标签: php jquery html mysql

我使用mysqlphp数据库中提取数据并回显json_encoded数组。

使用ajax我拉入结果并设置各种dom元素的值。我有一个字符串,其中包含一些html标签,例如<p></p>

当我设置元素$("#element").html(data['text'])时,它会在文本中添加双引号,并且所有html元素都显示为文本。

我似乎无法使用replace删除引号。奇怪的是,当我提醒值时,没有报价。它们只在我查看代码时出现在html中。

将html包含在文本中的最佳方法是什么?我如何让jquery渲染它有html而不是文本?

非常感谢!

PHP / MySQL

//Article by id
if(isset($_GET['do']) && $_GET['do']=='get_art') {
   $content = array();

   $id = clean_input($_GET['id']);
   $q = "SELECT * FROM articles WHERE id = '$id'";
   $r = $conn->query($q);
   $row = $r->fetch_assoc();

   $content['title'] = str_replace("€", '&euro;', $row['title']);
   $content['img'] = $row['img'];

   $content['text'] = str_replace('€', '&euro;', $row['text']);
   $content['text'] = htmlentities($row['text']);

   echo json_encode($content);
}
//end article by id

的jQuery

//load article onclick
$('body').on('click', '.get_art', function (e) {
  e.preventDefault();
  var href = $(this).attr('href').replace('#', ' ');

   $.ajax({
     url: 'actions.inc.php?do=get_art&id=' + href,
     dataType: 'json',
     type: 'post',
     success: function(data) {
         var art_text = data['text'];
         art_text = art_text.replace('&amp;euro;', '&euro;');

          $("#art_img").attr("src", "images/" + data['img']);
          $("#art_title").html(data['title']);
          $("#art_text").html($.parseHTML(art_text));

        } //end success
  });//end ajax

});
//end load

1 个答案:

答案 0 :(得分:0)

htmlentities(php)乱七八糟的东西,我控制台记录了php文件的输出后现在正常工作