【问题标题】:How to pass the video id in main page to another page like youtube?如何将主页中的视频 id 传递到 youtube 等另一个页面?
【发布时间】:2017-11-08 17:44:23
【问题描述】:

这是 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() -> js函数在youtube embed中分配video 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.

如果我在 js 函数中使用 php 变量,这是行不通的(因为我使用的是 php 7.1?)

var videoID = &lt;?php echo json_encode($videoID) ?&gt;;

2.

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

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

如果是怎么办。

image for description

【问题讨论】:

  • 打开你的控制台,它显示“语法错误”。 videoID + ?'rel=0&amp;amp;showinfo=0' 应该是 videoID + '?rel=0&amp;amp;showinfo=0'(引号内的问号)
  • @JeremyThille 这是我的打字错误[现在编辑],这在我的原始代码中没有问题????????

标签: javascript php jquery youtube php-7


【解决方案1】:

将 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

【讨论】:

  • 如果我警告(videoID),php 将无法工作;它将显示: ;这意味着js会认为它是一个长字符串
  • 什么?不,PHP 代码将被解释。您无法在客户端看到它。它在服务器上呈现,然后发送到客户端。
  • 我的意思是如果我实现你的代码 var videoID = "";和警报(视频ID);浏览器将显示与“”而不是“X3pTXG9a1oQ” 相同的内容
  • 那么,出了点问题。您的 PHP 代码没有在服务器上被解释。您应该无法在呈现的 HTML 中看到任何 PHP。
  • 您的网页是 *.php 还是 *.html?要使 php 代码正常工作,您需要有一个 php 页面。
【解决方案2】:

这是您应该拥有的快速基本布局

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

【讨论】:

    猜你喜欢
    • 2014-06-12
    • 2022-09-26
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    相关资源
    最近更新 更多