【问题标题】:Vimeo embed (froogaloop) SQL "while loop" issueVimeo 嵌入(froogaloop)SQL“while 循环”问题
【发布时间】:2013-04-20 17:16:57
【问题描述】:

链接:

this is the page I am working on

因此,我正在尝试创建一个页面,该页面将生成一个播放列表的 vimeo 视频,这些视频将一个接一个地播放。最终,我将使用 jquery 或其他方式隐藏和显示它们,以便一次只出现一个嵌入式视频 iframe。与此同时,我只是试图让 vimeo api 让我控制每个单独的对象。

所以现在想要的结果是让每个设置按钮用相同的 $nummy 值控制每个视频

其中$nummy 是列表中的顺序

问题在于,目前只有列表中的最后一个视频响应其自己的按钮集命令。

下面是 PHP 代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Test The Loop2</title>
<script type="text/javascript" src="http://a.vimeocdn.com/js/froogaloop2.min.js"></script>
</head>

<body>


<?

//db connect

$con = mysql_connect("d######t","db######104","no#######s");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

//db select

mysql_select_db("db337100104", $con); 



$result = mysql_query("SELECT * FROM vim_playlist1");

while($row = mysql_fetch_array($result))
  {

        $nummy = $row['listnum'] ;
        $url = $row['url'] ;
        $nexty = $nummy+1 ; 


//not an area of php    

?>

 <iframe class="vimeo" id="play<? echo $nummy ?>" src="http://player.vimeo.com/video/<? echo $row['url'] ?>?api=1&player_id=play<? echo $nummy?>" width="500" height="281" frameborder="0"></iframe>
<br />
<button id="playButton<? echo $nummy ?>">Play</button>
<button id="pauseButton<? echo $nummy ?>">Pause</button>
<button id="unloadButton<? echo $nummy ?>">Unload</button>

<script>

 function ready(player_id)
        {


             $f('play<? echo $nummy?>').addEvent('ready', function() 
                        {
             $f('play<? echo $nummy?>').addEvent('finish', onFinish);
                        });



            function onFinish(play<? echo $nummy?>)  
                 {                
            $f('play<? echo $nexty ?>').api('play');
                 }





           document.getElementById('playButton<? echo $nummy ?>').addEventListener('click', function() {
                $f('play<? echo $nummy?>').api('play');
            });

            document.getElementById('pauseButton<? echo $nummy ?>').addEventListener('click', function() {
                $f('play<? echo $nummy?>').api('pause');
            });

           document.getElementById('unloadButton<? echo $nummy ?>').addEventListener('click', function()                                                    {
              $f('play<? echo $nummy?>').api('unload');
            });



             }


        window.addEventListener('load', function() {
            //Attach the ready event to the iframe
            $f(document.getElementById('play<? echo $nummy?>')).addEvent('ready', ready);
        });



    </script>

<hr />

<?


        //end of loop
  }

  ?>

</body>
</html>

【问题讨论】:

    标签: php mysql while-loop vimeo froogaloop


    【解决方案1】:

    您在循环的每次迭代中都覆盖了 ready 函数。所以只会执行最后一个ready函数。

    一个示例解决方案是将ready 替换为ready&lt;?php echo $nummy ?&gt;(我认为$nummy 是唯一的):

    function ready<?php echo $nummy ?>(player_id) {
        // your function body
    }
    
    window.addEventListener('load', function() {
        //Attach the ready event to the iframe
        $f(document.getElementById('play<? echo $nummy?>')).addEvent('ready', ready<?php echo $nummy ?>);
    });
    

    P.s.:这不是一个理想的解决方案。但一个可能的解决方案。

    【讨论】:

    • 是的,nummy 是独一无二的。这听起来不错。我的问题是我真的不明白哪些函数可以重命名,哪些是 vimeo api 的一部分。 - 或者我不理解的东西绝对有可能是关于 javascript 的更基本的东西 - 但这很有意义。你说这不是一个想法解决方案。您有什么方法可以描述理想的解决方案可能是什么样子的吗?
    • @WillDelphia 理想的解决方案是只定义一次 ready 函数并拥有一个全局 JS 变量 nummy (参数似乎在这里不起作用)。然后在您的 window.addEventlistener 中添加一个设置您的 nummy 变量的事件。 (也许有更好的解决方案,但这比现在的解决方案要好得多。)(如果有帮助,请接受答案...?)
    猜你喜欢
    • 2021-07-31
    • 2016-06-06
    • 2018-07-29
    • 2011-06-19
    • 2015-01-19
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    相关资源
    最近更新 更多