PHP / JS - 从JS函数Argument访问PHP变量

时间:2015-07-28 15:01:56

标签: javascript php arrays html5

.PHP

<?php
$timeArray = [355,400,609,1000];
$differentTimeArray = [1,45,622, 923];
?>

<script type="text/javascript">
var i=0;
var eventArray = [];

function generateArray(arrayName){
   eventVideoArray = <?php echo json_encode(arrayName); ?>;
   var vid = document.getElementById('my_video');
   vid.currentTime = eventVideoArray[i];
}
</script>
<button onClick="javascript:generateArray(timeArray)"><button>

目前我可以通过使generateArray没有参数并使用$ timeArray重放arrayName来获得生成所需输出的函数。

即。工作守则

<script type="text/javascript">
var i=0;
var eventArray = [];

function generateArray(){
   eventVideoArray = <?php echo json_encode($timeArray); ?>;
   var vid = document.getElementById('my_video');
   vid.currentTime = eventVideoArray[i];
}
</script>

我想使用generate函数来调用许多不同的Time数组,因此让JS直接从php数组调用会使编码变得更容易。任何帮助将不胜感激。

谢谢!

[解决]

你好,

不确定关于php无法运行的评论,我在IIS上有一个不太灵活的工作示例。

我通过重写html中的按钮解决了这个问题。现在我可以使用相同的功能为视频添加新的时间数组。

感谢您的帮助。

<?php

    $timeArray = array();       
    $timeArray[] = 345.1;
    $timeArray[] = 789.1;
    $timeArray[] = 1002.1;
    $timeArray[] = 1200.12;

    $differentArray = array();
    $differentArray[] = 1500;
    $differentArray[] = 1700;

?>
<script type="text/javascript">
var i = 0;
var eventVideoArray = [];
function generateArray(arrayName){
    eventVideoArray = arrayName;
    var vid = document.getElementById('my_video');
    vid.currentTime = eventVideoArray[i];
}
</script>
<button id="goToTime" onClick="javascript:generateArray(<?php echo json_encode($timeArray); ?>)">timeArray</button>

<button id="goToTime" onClick="javascript:generateArray(<?php echo json_encode($$differentArray); ?>)">differentTimeArray</button>

2 个答案:

答案 0 :(得分:0)

PHP runs on the server and JS runs on the client. You want the client to call the server for the values for the array you will need an Ajax call or print the values directly to the JS (as already done on your code). Depending on the project making an Ajax call would be a bit too much to be done.

答案 1 :(得分:-1)

网络服务器不会在.html文件中解析PHP ...

要么在PHP文件中生成Javascript变量并将其声明为全局..

或者,将.html文件扩展名更改为.php,以便其中的PHP被网络服务器解析。