2013-04-20 1 views
0

Ссылка:Vimeo код вставки (froogaloop) SQL "в то время как петля" проблема

this is the page I am working on

Итак, я пытаюсь создать страницу, которая будет производить список воспроизведения Vimeo видео которые будут играть один за другим. В конце концов я попробую их скрыть и показать с помощью jquery или что-то еще, чтобы одновременно появлялся только один встроенный видеофрагмент iframe. Тем временем я просто пытаюсь получить vimeo api, чтобы дать мне контроль над каждым отдельным объектом.

Таким образом, желаемый результат сейчас будет у каждого создан кнопок управления каждым видео с его же значением $ Намх

где $ Намм является порядком в списке

Вопрос заключается в том, что в данный момент ТОЛЬКО ПОСЛЕДНЕЕ видео в списке отвечает на свои собственные команды набора кнопок.

Вот код с 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> 

ответ

0

Вы переписав ready функции в каждой итерации вашего цикла. Таким образом, будет выполнена только последняя функция ready.

Пример решением было бы заменить ready с ready<?php echo $nummy ?> (я полагаю, что $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 .: Это не идеальным решением. Но возможное решение.

+0

Да nummy уникален. Это звучит хорошо. Моя проблема в том, что я действительно не понимаю, какие функции предназначены для переименования и которые являются частью vimeo api. - или его абсурдно возможно, что то, что я не понимаю, является чем-то более фундаментальным в javascript - но это имеет большой смысл. Вы говорите, что это не идея решения. Есть ли у вас способ описать, как может выглядеть идеальное решение? –

+0

@WillDelphia идеальным решением было бы определить функцию 'ready' только один раз и иметь глобальную переменную JS' nummy' (параметры, похоже, не работают здесь). И затем в вашем window.addEventlistener добавьте событие, которое устанавливает вашу переменную 'nummy'. (Возможно, есть лучшее решение, но это намного лучше, чем решение сейчас.) (И принять ответ, если это было полезно ...?) – bwoebi