我有一个包含许多复杂变量的大型php页面,我正在尝试创建可在某些点播放视频的按钮。
我目前有
pack()
echo json_encode($ HCount)看起来像
<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>
这段代码可行,但我希望generateJSON的争论是JSON本身。 即。
[{"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":""}}]
^^此代码适用于简单数组,例如
<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>
但不是我需要的多维案例,Chrome上产生的错误是
<?php
$timeArray = array();
$timeArray[] = 345.1;
$timeArray[] = 789.1;
$timeArray[] = 1002.1;
$timeArray[] = 1200.12;
?>
按钮后但没有;在线。我试过加入;没有太多运气的PHP json_encode。任何帮助将不胜感激。
谢谢!
答案 0 :(得分:0)
问题是现在您正在将JSON打印到由引号括起的元素属性。你需要转义它才能工作,否则JSON中的引号会破坏元素。试试这个:
<button id="goToTime" onClick="generateJSON(<?php echo htmlentities(json_encode($HCount)) ?>)">genJS</button>