2013-08-25 4 views
0

Я пытаюсь отобразить результаты поиска со знаком & в них. Но когда я делаю от php до json & конвертирует в & amp.Twitter typeahead отображает '& amp' вместо '&'

В любом случае я могу предотвратить это, или до того, как напечатать имена в строке поиска, переведите его обратно в &?

Заранее благодарен!

EDIT: HTML JS:

   { 
       name: 'industries', 
       prefetch: 'industries_json.json', 
       header: '<h1><strong>Industries</strong></h1>', 
       template: '<p>{{value}}</p>', 
       engine: Hogan 
      }, 

industries_json.json (Созданный с json_encode)

[{"id":42535,"value":"AUTOMOBILES &AMP; COMPONENTS","type":"industries"}] 

PHP-скрипт, который выводит данные в формате JSON:

public function renderJSON($data){ 
    header('Content-type: application/json'); 
    echo json_encode($data); 
} 
+0

В следующий раз рассмотрим мечения свой вопрос с языком вы работаете в: PHP. Это помогает людям PHP легче найти ваш вопрос. – htxryan

+0

Я обязательно сделаю! – Marcus

ответ

1

проблему, с которой» re сталкивается с кодировкой HTML. Вы хотите декодировать текст перед отправкой его клиенту. Важно, чтобы вы только расшифровывали текстовые свойства объекта JSON (а не весь объект JSON).

Вот ссылка на декодирование HTML в PHP: http://php.net/manual/en/function.html-entity-decode.php

+0

Я не уверен, что вы имеете в виду. Я использую функцию «prefetch» ​​для предварительной выборки результата, который приходит в таком формате: [{«id»: 42535, «value»: «AUTOMOBILES & КОМПОНЕНТЫ», «type»: «industries»}] Я использую json_encode функции в php для преобразования исходного массива в результат выше. – Marcus

+0

Можете ли вы опубликовать код, с которым работаете? Было бы проще дать вам образец кода, если я смогу точно видеть, что вы делаете. – htxryan

+0

Несомненно, мое редактирование в исходном сообщении :) – Marcus

2

Использование html_entity_decode функции как ...

Код Перед:

public function renderJSON($data){ 
    header('Content-type: application/json'); 
    echo json_encode($data); 
} 

выход: Дает HTML код в строку, как напр: appthemes &amp; Vantage search Предложить

Код после:

public function renderJSON($data){ 
    header('Content-type: application/json'); 
    $data = json_encode($data); 
    echo html_entity_decode($data); 
} 

выход: Дает HTML код в строку, как напр: appthemes & поиск Vantage Предлагайте

0

Я хотел бы сделать это в JavaScript. После того, как вы получили JSON, просто использовать функцию JavaScript заменить на JSON как это:

сначала преобразовать его в строку этим:

var jsonString=JSON.stringify(jsonData); 

затем заменить & усилитель, как это.

jsonString=jsonString("&amp","&"); 

затем снова конвертировать его в JSON obj;

jsonObj=JSON.parse(jsonString); 

теперь ваш JSON, будет иметь & вместо &amp.

Что дальше?

делать все, что вам нужно сделать с jsonObj

Смежные вопросы