2015-07-29 2 views
1

У меня есть большая php-страница с множеством сложных переменных, и я пытаюсь создать кнопки, которые будут воспроизводить видео в определенные моменты.PHP/JS: Многомерный массив PHP как Javascript Функция Параметр

я в настоящее время

<script> 
    function generateJSON(){   
     var ARRAY = <?php echo json_encode($HCount) ?>; 
     var vid = document.getElementById('my_video'); 
     vid.currentTime = parseInt(ARRAY[0].eventTime); 
    } 
</script> 
<button id="goToTime" onClick="javascript:generateJSON()">genJS</button> 

где эхо json_encode ($ HCount) выглядит

[{"gameID":"212345564","eventTime":"2693","plID":"523dfs", 
"evArray":{"5645":"Cuyta","11245230":"98.0","2229":"","3318":"","15":""}}, 
{"gameID":"212345564","eventTime":"2293","plID":"523dft", 
"evArray":{"5645":"Pkyyt","11245230":"28.0","2229":"","3318":"","11":""}}] 

Этот код работает, однако я хотел бы arguement из generateJSON быть сам JSON. т.е.

<script> 
    function generateJSON(ARRAY){  
     var vid = document.getElementById('my_video'); 
     vid.currentTime = parseInt(ARRAY[0].eventTime); 
    } 
</script> 
<button id="goToTime" onClick="javascript:generateJSON(<?php echo json_encode($HCount) ?>)">genJS</button> 

^^ Этот код работает для простых массивов, таких как

<?php 
     $timeArray = array(); 
     $timeArray[] = 345.1; 
     $timeArray[] = 789.1; 
     $timeArray[] = 1002.1; 
     $timeArray[] = 1200.12; 
?> 

но не для многомерного случая я требую, ошибка производится на хром

Uncaught SyntaxError: Unexpected token ; 

после но нет; в линии. Я попытался добавить; к php json_encode без большой удачи. Любая помощь будет принята с благодарностью.

Спасибо!

+0

'ARRAY [0]' ограничивает вас первым элементом массива. Вы считали, что используете что-то вроде 'JSON.parse'? https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse – heartyporridge

+0

Просьба предоставить нам исходный код кнопки, как он отображается в HTML, а также удалить «javascript: "из обработчика onCLick. И вы можете опубликовать функцию generateJSON? –

+0

Я использовал только ARRAY [0] в качестве тестового примера. В полном коде у меня есть глобальная переменная i, которая изменяется при пропуске плейлиста. Я использовал json.parse и json.stringify при использовании более простых массивов, но неспособность синтаксического анализа от кнопки делает ее сложной задачей. – NeutralA

ответ

0

Проблема в том, что теперь вы печатаете JSON атрибуту элемента, который окружен кавычками. Вам нужно сбежать от него, чтобы работать, или кавычки в JSON сломают элемент. Попробуйте следующее:

<button id="goToTime" onClick="generateJSON(<?php echo htmlentities(json_encode($HCount)) ?>)">genJS</button> 
+0

<3. большое спасибо! Это, похоже, устранило мои проблемы в моем тестовом случае. Я расскажу о своем проекте, чтобы узнать, что произойдет! – NeutralA

+0

Кстати, это решило мою проблему. Еще раз спасибо. – NeutralA

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