PHP/jQuery-意外的标识符

PHP / jQuery - Unexpected identifier

本文关键字:标识符 意外 jQuery- PHP      更新时间:2023-09-26

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

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

为什么不做json_encode呢。json_encode将把您的PHP变量转换为可由JavaScript使用的变量。这也可能消除在大多数情况下使用html_entity_decode的需要,因为这并不是转换JavaScript将要使用的内容所应该做的事情。根本不需要CCD_ 6。

<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>

以下示例按预期工作:

<script>
// Number
console.log(<?php echo json_encode(1); ?>); 
// String
console.log(<?php echo json_encode("hello"); ?>);
// Boolean
console.log(<?php echo json_encode(false); ?>);
// Boolean
console.log(<?php echo json_encode(true); ?>);
// Array
console.log(<?php echo json_encode(array(1,2,3)); ?>);
// Outputs a JavaScript object
console.log(<?php echo json_encode(array("a" => 345, "b" => '242', "c" => 'hello')); ?>);
</script>