0

我有这段代码,它从 PHP 文件向 JS 发送一个变量。

<script type="text/javascript">
var pids = new Array(<?php echo implode(', ', $pids); ?>);
var permalink = "My name is <?php the_permalink(); ?>";
</script>  

由于我无法理解的原因,当删除“我的名字是”时,这是一个语法错误。

<script type="text/javascript">
var pids = new Array(<?php echo implode(', ', $pids); ?>);
var permalink = "<?php the_permalink(); ?>";
</script>  

没有输出,脚本死了。

 [Syntax Error]     

        = new Array(67, 68, 69, 70, 71,

第一个代码正在工作,现在已经自发停止,尽管没有任何变化。现在,两者都不起作用。

我发现问题出在前面的代码中:当小于号更改为小于或等于时,会出现 javascript 语法错误。不知何故,这必须破坏数组或内爆函数

 $pids = array();
  $i=0;

  $result = count($wpdb->last_result);
  while($i < $result) {    

     $pids[] = $wpdb->last_result[$i]->pid;
     $i++;
  }
?>

<script type="text/javascript">
var pids = new Array(<?php echo implode(', ', $pids); ?>);
var permalink = "My name is <?php the_permalink(); ?>";
</script>  
4

3 回答 3

0

试试看:

var permalink = "My name is '<?php the_permalink(); ?>'";
于 2013-01-14T09:04:51.157 回答
0

您可能在其中一个 php 输出函数中有 ' 或 " ,请尝试转义它们。如果您的 pid 之一是错误的类型并且 implode 无法完成,这也可能发生。

于 2013-01-14T09:05:47.777 回答
0

尝试这个 :

var permalink = "My name is " + <?php the_permalink(); ?>;
于 2013-01-14T09:07:18.670 回答