2013-08-07 3 views
5

Ich habe einige PHP, die json ausgibt.Ausgabe HTML in JSON-String von PHP generiert

{"titel":"Here comes the title","html":"<strong>Here is the HTML<\/strong>\n<br \/>\n<br \/>\n  And some more."} 

Und die jQuery/Ajax wird:

<?php 
$html = utf8_encode($gegevens['tekst']); 
$html = htmlentities($html); 
//$html = htmlspecialchars($gegevens['tekst'], ENT_QUOTES, 'UTF-8'); 
echo json_encode(array('titel' => $gegevens['titel'], 'html' => $html)); 
?> 

wird die Ausgabe wie sein

$.ajax({ 
          type: "GET", 
          url: "content/popup.php?id=" + id2, 
          dataType: 'json', 
          crossDomain: true, 
          success: function(json) { 
          var titel = json['titel']; 
          var html = json['html']; 


function ContentTonen() 
{ 
           // Div's legen van content 
$('.popup_home_head_inside').empty(); 
$('.popup_home_content_inside').empty(); 

$('.popup_home_head_inside').html(titel); 
var html2 = html.replace(/\"/g, ""); 
//$('.popup_home_content_inside').html(html2); 
$('.popup_home_content_inside').html(html2); 

Und die HTML-Ausgabe ist:

<strong>Some HTML</strong> <br /> Some more text. 

es also wird nicht als HTML verarbeitet.

Können Sie mir helfen?

Antwort

5

Sie müssen das HTML mit htmlentities auf Serverseite nicht entkommen lassen.

Entfernen Sie die $html = htmlentities($html); aus Ihrer PHP-Datei.

Grund: htmlentities konvertiert

<strong>Some HTML</strong> <br /> Some more text. 

zu

&lt;strong&gt;Some HTML&lt;/strong&gt; &lt;br /&gt; Some more text. 

die, wenn sie in html enthalten wird angezeigt:

<strong>Some HTML</strong> <br /> Some more text. 
+1

Wie bereite ich die html für JSON dann? Stripslashes funktioniert nicht. – Daan

+0

Welche Art von Vorbereitung meinst du? – Jithesh

+0

Wenn ich den HTML-Code direkt in den JsonEncode einfüge, wird null zurückgegeben. Weil es kein gültiger JSON ist. Mit htmlentities akzeptierte JsonEncode den String als gültiges JSON. Aber welche Funktion sollte ich verwenden, um HTML als gültigen JSON vorzubereiten? – Daan

Verwandte Themen