如何在javascript中插入php代码

时间:2014-04-17 16:45:58

标签: php wordpress

请看看下面的代码!它的工作完全除了PHP代码没有给出任何输出。当我插入php的输出时,脚本运行完美。

<script type="text/javascript">
function LoadVideoBar() {
  var videoBar;
  var barContainer = document.getElementById("videoBar");

  var options = {
    largeResultSet : false,
    horizontal : true,
    autoExecuteList : {
      cycleTime : GSvideoBar.CYCLE_TIME_SHORT,
      cycleMode : GSvideoBar.CYCLE_MODE_LINEAR,
      executeList : [ "<?php $cat = get_the_category(); $cat = $cat[0];  echo $cat->cat_name; echo "-"; echo wp_title(); ?> "]
    }
  }

  new GSvideoBar(
            document.getElementById("videoBar"),
            document.getElementById("videoPlayer"),
            options
            );
}
GSearch.setOnLoadCallback(LoadVideoBar);

当我替换php代码时

<?php $cat = get_the_category(); $cat = $cat[0];  echo $cat->cat_name; echo "-"; echo wp_title(); ?>

有一些文字,如:categoryname-title name

该脚本完美无缺。

有人可以帮我解决这个小问题......

非常感谢提前!

3 个答案:

答案 0 :(得分:2)

如果您需要在两者之间传递数据。将PHP值放入隐藏字段。然后像使用条形容器一样阅读它

保存PHP的值:

<?php $cat = get_the_category(); $cat = $cat[0]; ?>
<input id="executeListValue" type="hidden" 
       value="<?php echo $cat->cat_name."-".wp_title();?>" >

在js中阅读:

var executeListValue = document.getElementById("executeListValue").value;
//...
autoExecuteList : {
  cycleTime : GSvideoBar.CYCLE_TIME_SHORT,
  cycleMode : GSvideoBar.CYCLE_MODE_LINEAR,
  executeList : executeListValue
}

答案 1 :(得分:1)

如果更换php代码并且脚本工作正常意味着php在执行时出现了一些错误。你能不能试着看看html页面的源代码。这可能是因为发生了一些php错误而发生的错误消息字符串可能会对javascript产生一些语法错误。

尝试将php代码放在javascript标记之外,并查看从中生成的输出。

<?php 
$cat = get_the_category(); 
$cat = $cat[0];  
$output= $cat->cat_name."-".wp_title(); 
?>

然后尝试在javascript中打印输出。

executeList : [ "<?php print $output; ?>"]
    }
通过这种方式你可以看到是否遇到任何php错误。

答案 2 :(得分:0)

"-"替换为Javascript代码中的'-'行:

[ "<?php $cat = get_the_category(); $cat = $cat[0]; echo $cat->cat_name; echo "-"; echo wp_title(); ?> "]