如何将主页中的视频ID传递给像youtube这样的其他页面?

时间:2017-06-07 11:34:07

标签: javascript php jquery youtube php-7

这是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&amp;showinfo=0'; $('#video-player').attr('src' , videoPath); }

问题是

1

如果我将php变量用于js函数(这是因为我使用的是php 7.1),这是行不通的。

var videoID = <?php echo json_encode($videoID) ?>;

2

我用这种方法来实现这个“克隆youtube”是一种最好的方法吗?

我应该使用ajax来实现这个功能吗?

如果是,该如何做。

image for description

2 个答案:

答案 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&amp;showinfo=0';
  $('#video-player').attr('src' , videoPath);
}
</script> 

..... your other content and code.....

</body>
</html>