2013-08-25 27 views
0

我试图在其中显示带有标记&的搜索结果。但是当我从php渲染json &转换为&安培。Twitter typeahead显示'&amp'而不是'&'

是否有反正我可以阻止,或之前我在搜索栏中打印名称将它转换回&?

在此先感谢!

编辑: 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脚本。OUPUTS JSON:

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

下一次做,考虑你的工作语言标记您的问题:PHP。这有助于PHP人员更轻松地找到您的问题。 – htxryan

+0

我一定会做! – Marcus

回答

1

的你的问题”重新面向的是HTML编码。你想要的是在将文本发送到客户端之前解码文本。仅解码JSON对象的文本属性(而不是整个JSON对象本身)非常重要。

这里是PHP的HTML解码参考:http://php.net/manual/en/function.html-entity-decode.php

+0

我不确定你的意思。我使用“prefetch”函数来预取这种格式的结果: [{“id”:42535,“value”:“AUTOMOBILES & COMPONENTS”,“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代码中像前字符串:应用专题&amp;华帝搜索建议

代码之后:

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

输出:给出像前字符串的html代码:appthemes &华帝搜索推荐

0

我会做在JavaScript。一旦你得到了JSON,只是使用替代的JSON像这样的javascript功能:

第一本将其转换为字符串:

var jsonString=JSON.stringify(jsonData); 

然后更换&放这样的。

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

然后再转换成JSON obj;

jsonObj=JSON.parse(jsonString); 

现在,你的JSON,将有&而不是&amp

接下来是什么?

什么就做什么,你需要用jsonObj