[英]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.