2015-07-28 3 views
-1

.phpPHP/JS - Доступ к переменной PHP из JS функции аргумента

<?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 нет аргументов и replaing ИмяМассива с $ timeArray.

т.е. Рабочего код

<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> 

Я хочу использовать функцию генерации для вызова на многих разных массивах времени, поэтому получать 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

Веб-сервер не будет анализировать PHP в файле .html ... – MaggsWeb

+0

@ChrisMaggs: это действительно зависит от конфигурации, веб-серверы могут быть настроены для этого. Что касается исходного вопроса, возможно, вам придется вставить эти переменные с помощью 'echo' – Snappawapa

ответ

-1

Веб-сервер не будет разбирать PHP в .html файл ...

Либо генерировать переменную Javascript в вашем файле PHP и объявить его глобальным ..

Или изменить расширение вашего .html файла .php, чтобы PHP в нем разбирался на веб-сервере.

0

PHP работает на сервере, а JS работает на клиенте. Вы хотите, чтобы клиент вызывал сервер для значений для массива, который вам нужен для вызова Ajax или распечатывает значения непосредственно в JS (как это уже делается на вашем коде). В зависимости от проекта создание Ajax-вызова было бы слишком большим, чтобы его можно было сделать.

+0

. Я рассмотрю использование AJAX для будущих проектов, спасибо! – spicyA

Смежные вопросы