2012-05-12 34 views
0

我做一个jQuery Ajax调用PHP脚本返回在Javascript这个字符串变量:格式化字符串在javascript

"<div id=\"page\">\r\n\r\n\t" 

我可能失去了一些东西简单在这里,但有没有办法恢复\r\n<br/>,但更重要的是,将\"page\"恢复为"page"?我无法弄清楚。

的Javascript看起来是这样的:

$.ajax({ 
     type: 'POST', 
     dataType: "JSON", 
     url: sameURLasPHPscript, 
     success:function(data){ 
      // successful request; do something with the data 
      $('body').text(data); 
     }, 
     error:function(){ 
      // failed request; give feedback to user 
      alert('ErrorMessage'); 
     } 
    }); 

我的PHP文件看起来像这样:

 $url = "someURL/controller/action/getID"; 

     $a = file_get_contents($url);   

     echo json_encode($a); 

编辑:解决方案可以在这里找到:http://blog.dkferguson.com/index.cfm/2011/3/15/jQuery-Mobile-styling-loaded-content

+0

你的PHP代码是什么样的?你应该从那里修复它。 –

+0

事实上,对服务器端脚本的一些调整将是最好的,因为它会产生这种无益的输出。 –

+0

@大卫一切都是应该的,直到我做json_encode($ b)。有没有办法在PHP中做到这一点? –

回答

2

你的服务器发送JSON编码的数据,你应该同样对待它。更改您的jQuery.ajax的参数,以便它期望JSON数据。然后jQuery将解析数据并处理所有的\"\r\n

编辑

比较这两个jQuery函数输出:

$('body').text("<b>bold</b>"); // will write <b>bold</b> literally 
$('body').html("<b>bold</b>"); // will write bold in bold font 

您需要使用jQuery.html函数来显示HTML作为HTML。

+0

我决定如果我不做json_encode()会更好。有没有一种方法可以在PHP中转换这些字符而不是javascript? –

+0

更改'echo json_encode($ b);''echo $ b;'? –

+0

我编辑了我的问题到您的建议。 –