1

次の例のエントリを含む 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として解析する方法を知っている人はいますか?

EDIT 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 の出力:

[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-functionsを使用するだけです。私のやり方が間違っているのかもしれません。

データベースから次のようなものを取得しました。

&amp;lt;div&amp;gt;- diversen Diskutanten- Moderiert vom großartigen PreibischDebatte, Gesprochenes, Kontroverses&amp;lt;div class=&amp;quot;btn-group&amp;quot;&amp;gt;&amp;lt;a class&amp;quot;btn&amp;quot; href=&amp;quot;&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;icon-map-marker&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class&amp;quot;btn&amp;quot; href=&amp;quot;&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;icon-map-marker&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;

それから私は使用します

html_entity_decode(utf8_encode($result[$i]['description']));

元に戻すには、json_encode を使用して json 形式にします。この関数のいずれかを正しい引用にするべきではありませんか?

ワークフローに到達することを願っています...

4

2 に答える 2

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);​

これはjsfiddleの例です

OPコメント後の更新:

この値を取得してエンティティ (引用符を含む) をデコードしてjson_encode()いるため、適切にエスケープされた引用符を生成する必要があります。

json_encode(html_entity_decode(utf8_encode($result[$i]['description'])));

または、これが由来する配列全体をエンコードする可能性が高くなります。

json_encode($your_database_row_array);
于 2012-11-29T13:27:59.473 に答える
0

あなたが試してみるべきかもしれません:

document.getElementById('desc_text').innerHTML = unescape( event.description);
于 2012-11-29T13:27:23.570 に答える