【问题标题】:PHP/JS - Accessing PHP variable from JS function ArgumentPHP/JS - 从 JS 函数参数访问 PHP 变量
【发布时间】:2015-07-28 15:01:56
【问题描述】:

.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 无法运行的 cmets,我的 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>

【问题讨论】:

  • 网络服务器不会解析 .html 文件中的 PHP...
  • @ChrisMaggs:这真的取决于配置,网络服务器可以设置为这样做。至于原始问题,您可能需要使用 echo 插入这些变量

标签: javascript php arrays html


【解决方案1】:

PHP 运行在服务器端,JS 运行在客户端。您希望客户端调用服务器以获取数组的值,您将需要 Ajax 调用或将值直接打印到 JS(正如您的代码已经完成的那样)。 根据项目的不同,进行 Ajax 调用会有点过多。

【讨论】:

  • 我会考虑在未来的项目中使用 AJAX,谢谢!
【解决方案2】:

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

或者,在 PHP 文件中生成 Javascript 变量并将其声明为全局变量。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    相关资源
    最近更新 更多