我有一个JSON-Object,其中包含以下示例条目:
description":"<div>- diversen Diskutanten- Moderiert vom gro\u00dfartigen PreibischDebatte, Gesprochenes, Kontroverses<div class="btn-group"><a class"btn" href=""><i class="icon-map-marker"><\/i><\/a><a class"btn" href=""><i class="icon-map-marker"><\/i><\/a><\/div><\/div>"
现在我正在尝试将此html添加到我的代码中的另一个元素:
$('#desc_text').empty();
$('#desc_text').html(event.description);
$('#description').modal('show');
问题是html没有被解析为html,我认为jquery .html()
会这样做。我也试过了append()
,但也没有改变。
有谁知道如何将其解析为html?
编辑2:整个工作流程,因为它似乎有点混乱:
我先做:
$events = json_encode($func->getAllDates());
该功能确实:
public function getAllDates() {
$this->db->query('SELECT * FROM dates ORDER BY start');
$result = $this->db->mysql_fetch_all();
for($i = 0; $i < count($result); $i++) {
$result[$i]['description'] = html_entity_decode(utf8_encode($result[$i]['description']));
}
print_r($result);
return $result;
}
输出$ result in function:
[6] => Array
(
[id] => 17
[title] => Sabotage Debatte: Politik im Keller
[start] => 2012-11-29 00:00:00
[end] => 2012-11-29 00:00:00
[allDay] => 1
[url] =>
[description] => <div>- diversen Diskutanten- Moderiert vom großartigen PreibischDebatte, Gesprochenes, Kontroverses<div class="btn-group"><a class"btn" href=""><i class="icon-map-marker"></i></a><a class"btn" href=""><i class="icon-map-marker"></i></a></div></div>
)
编辑:
正如评论中所说:引用似乎是答案,但我不引用自己,只使用php函数。也许我做的方式是错误的。
我的数据库中有这样的东西:
&lt;div&gt;- diversen Diskutanten- Moderiert vom großartigen PreibischDebatte, Gesprochenes, Kontroverses&lt;div class=&quot;btn-group&quot;&gt;&lt;a class&quot;btn&quot; href=&quot;&quot;&gt;&lt;i class=&quot;icon-map-marker&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;a class&quot;btn&quot; href=&quot;&quot;&gt;&lt;i class=&quot;icon-map-marker&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;
然后我用
html_entity_decode(utf8_encode($result[$i]['description']));
将其关闭然后我使用json_encode将其放入json格式。不应该对这个函数做任何正确的引用吗?
我希望你能进入工作流程......
答案 0 :(得分:2)
您的字符串包含必须转义的内部引号。此外,你有一些错误的属性,如class"btn"
应该是class="btn"
之后,它将正常工作。
// description with all internal double quotes escaped by \"
var event = {
"description":"<div>- diversen Diskutanten- Moderiert vom gro\u00dfartigen PreibischDebatte, Gesprochenes, Kontroverses<div class=\"btn-group\"><a class=\"btn\" href=\"\"><i class=\"icon-map-marker\"><\/i><\/a><a class=\"btn\" href=\"\"><i class=\"icon-map-marker\"><\/i><\/a><\/div><\/div>"
};
$('#desc_text').empty();
$('#desc_text').html(event.description);
由于您正在检索此值并解码实体(包括引号),因此您必须json_encode()
生成正确的转义引号。
json_encode(html_entity_decode(utf8_encode($result[$i]['description'])));
或者更有可能的是,对来自的整个数组进行编码:
json_encode($your_database_row_array);
答案 1 :(得分:0)
可能你应该尝试:
document.getElementById('desc_text').innerHTML = unescape( event.description);