2013-04-15 4 views
0

Привет Я хотел бы вывести код в [json['information'] в качестве фактического преобразованного html-кода.Как вывести правильный html с помощью json с помощью ajax

На данный момент, кажется, просто выводит всю строку в виде чистого текста (неформатированный HTML, так что вы можете увидеть все теги и т.д.) Im все еще учусь о json так я не уверен, что должно быть сделано с содержанием чтобы сделать его правильным html.

Заранее спасибо

$('.engineering-services').live('click', function() {  
$.ajax({ 
    url: 'index.php?route=information/information/homepage_info', 
    type: 'post', 
    data: {info_for : 'engineering'}, 
    dataType: 'json', 
    success: function(json){ 

    $('#engineering-content').html(json['information']); 
    }, 
    error: function(json) { 
    alert('fail'); 
    } 
    }); 
    }); 

EDIT, Херес PHP ...

public function homepage_info() { 
    $this->load->model('catalog/information'); 
    $json = array(); 
    if (isset($this->request->post['info_for'])) { 
     if ($this->request->post['info_for'] == 'engineering') {  
      $information_info = $this->model_catalog_information->getInformation(10); 
      $json['information'] = $information_info['description'];     
      } 
      $this->response->setOutput(json_encode($json)); 
      } 

      } 
+1

Возможно, вы кодируете такие вещи, как '<' as '<' на стороне сервера при создании JSON (с помощью 'htmlspecialchars', может быть?). Можем ли мы увидеть JSON или его часть? – bfavaretto

+0

Ive отредактирован, чтобы включить php, извините, если это глупый вопрос, но что вы подразумеваете под частью JSON? Как в фактическом выходе? – Adrian

+0

также, я думаю, что вы правы в & lt и т. Д., Но есть ли способ обойти это? – Adrian

ответ

0

Ваших HTML-строка, кажется, кодирующие специальные символы, как HTML-сущности, как < к &lt; и т.д. С PHP, который вы показали, он, вероятно, закодирован в базе данных (возможно, вы зашифровываете перед сохранением).

Вы должны быть в состоянии исправить это с html_entity_decode:

$json['information'] = html_entity_decode($information_info['description']); 
// or, a few lines later: 
// $this->response->setOutput(html_entity_decode(json_encode($json))); 
0

Похоже, вы используете Open корзинку для вас PHP контроллера. Для того, чтобы отправить обратно ответ с соответствующими заголовками JSon Открытый Корзина путь выглядит следующим образом:

$this->load->library('json'); 
$this->response->setOutput(Json::encode($json)); 

Надежда, что помогает.