簡體   English   中英

PHP / jQuery-意外的標識符

[英]PHP / jQuery - Unexpected identifier

我正在用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使用的內容。 根本不需要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>

下面的示例按預期工作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM