这是main_page.html中的内容:
<img src="..." onclick="openVideoPlayer('j2umt3WZU8Q')" >
点击此图片后,隐藏的表单将被填充并使用GET到video.php
<!-- hidden form -->
<form id="openVideoPlayerForm" action="player.php" method="get">
<input id="form-video-id" tpye="text" name="videoID" value="" hidden />
</form>
在video.php中,我首先将GET数据转换为JSON并调用initPage() - &gt; js函数在youtube embed中分配视频id属性。
$ video = $ _GET ['videoID'];
function initPage(){
var videoID = <?php echo json_encode($videoID) ?>;
var videoPath = 'https://www.youtube.com/embed/' + videoID + 'rel=0&showinfo=0';
$('#video-player').attr('src' , videoPath);
}
问题是
1
如果我将php变量用于js函数(这是因为我使用的是php 7.1),这是行不通的。
var videoID = <?php echo json_encode($videoID) ?>;
2
我用这种方法来实现这个“克隆youtube”是一种最好的方法吗?
我应该使用ajax来实现这个功能吗?
如果是,该如何做。
答案 0 :(得分:0)
将VideoID设为字符串,添加引号。目前无效:
var videoID = <?php echo json_encode($videoID) ?>;
因为它产生:
var videoID = X3pTXG9a1oQ; // Error : X3pTXG9a1oQ is not defined
再次打开你的控制台,它会告诉你什么是错的。
您必须添加引号:
var videoID = "<?php echo json_encode($videoID) ?>";
将产生:
var videoID = "X3pTXG9a1oQ"; // Valid
答案 1 :(得分:0)
以下是您应该拥有的快速基本布局
<?php
$video = $_GET['videoID'];
?>
<!DOCTYPE html>
<html>
<body>
<script>
function initPage(){
var videoID = ''+<?php echo $video ?>+'';
var videoPath = 'https://www.youtube.com/embed/' + videoID + 'rel=0&showinfo=0';
$('#video-player').attr('src' , videoPath);
}
</script>
..... your other content and code.....
</body>
</html>