2013-03-21 203 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']