PHP / jQuery - 意外的标识符

时间:2014-08-26 13:22:54

标签: javascript php jquery

我正在用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错误。

我的问题是:如何避免这种情况?

1 个答案:

答案 0 :(得分:2)

你为什么不做json_encodejson_encode会将PHP变量转换为JavaScript可用的变量。这也可能消除了在大多数情况下使用html_entity_decode的需要,因为这不是你应该做的事情来转换将被JavaScript使用的东西。 }根本不需要。{/ 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>