2013-03-21 197 views
0

我现在有需要使用JavaScript来从PHP解析变量的网页。
我做这样的事情:
PHP JavaScript的JSON解析转义字符

data.notices = JSON.parse('<?php echo json_encode($notices) ?>'); 

然而,当有在$通知变量单或双引号,JavaScript控制台回传失误。

我怎样才能获得正确的变量?

回答

1

这个代码不`吨返回错误

<? 
$notices = array('sad'=>'asd as" asd', 'asd"sdf '=>'asdasd" \' asd ads'); 
?> 
<script> 
data = new Object(); 
data.notices = JSON.parse('<?php echo addslashes(json_encode($notices)) ?>'); 
</script> 
+0

[{“content”:“\\'\\'hello”}]这个返回错误。我想当我在数据库中写单引号时,我在mssql服务器中发现它存储为\'。当我从数据库中获得变量到$ notices时,它会再次变成“\\'\\'hello”。 – 2013-03-21 09:52:13

+0

@ user985874我没有错误时使用'$告示=阵列( '内容'=> “\\ '\\' 你好”);' – 2013-03-21 09:56:56

1

$a='b'将被转换为"b"(注意引号)由json_encode

只写JSON.parse(<?php echo json_encode($notices) ?>);(删除')都会好的。

0

我发现它是由这样的事实,我没有插入到数据库之前逃脱字符的问题。

0

你是一个额外的操作。如果你想要的消息为JavaScript变量,你可以直接得到像

data.notices = <?php echo json_encode($notices) ?>; 
// and access like this 
// data.notices[0] or data.notices['alert']