我正在用PHP设置一个jQuery数组,如下所示:
<script type='text/javascript'>
var postQuote = new Array();
postQuote[<?php echo $post['post_id']; ?>] = <?php echo mysql_real_escape_string(html_entity_decode($post['post_text'])); ?>
</script>
我的问题是,$post['post_text'];
可以字面上包含所有字符。因此,我收到jQuery的unexpected identifier
错误。
我的问题是:如何避免这种情况?
答案 0 :(得分:2)
你为什么不做json_encode
。 json_encode
会将PHP变量转换为JavaScript可用的变量。这也可能消除了在大多数情况下使用html_entity_decode
的需要,因为这不是你应该做的事情来转换将被JavaScript使用的东西。 1>}根本不需要。{/ p>
mysql_real_escape_string
我还将它们设置为单独的变量,以便它们更容易调试并跟踪:
<script type='text/javascript'>
var postQuote = new Array();
postQuote[<?php echo json_encode($post['post_id']); ?>] = <?php echo json_encode($post['post_text']); ?>
</script>
以下示例按预期工作:
<script type='text/javascript'>
var postQuote = new Array();
var postQuoteKey = <?php echo json_encode($post['post_id']); ?>;
var postQuoteValue = <?php echo json_encode($post['post_text']); ?>;
// See what the key and value are
console.log(postQuoteKey);
console.log(postQuoteValue);
postQuote[postQuoteKey] = postQuoteValue;
</script>