Как загрузить следующий YouTube в массиве PHP?

У меня есть этот PHP / HTML-код, который загружает случайное видео YouTube из массива PHP каждый раз, когда страница загружается. Но я хочу, чтобы кнопки "Следующая" и "Предыдущая" загружали следующее и предыдущее видео в массиве. Только одно видео должно быть загружено в любое время. У меня есть это:

<?php $videos = array("0jBRY_Aki9s","1czXvHSjDac","1kbiUiRfnh8","377kKBi6anQ"); 

$rand = array_rand($videos); 
$rand_key = $videos[$rand]; 
$numOfItems = count($videos);

echo "<iframe width='375' height='310' 
src='http://www.youtube.com/embed/$rand_key?&amp;fmt=22&amp;autoplay=1'> </iframe>";?> 

<span onclick="<?php $clip = next($videos); 
echo "<iframe style='float:left;' width='375' height='310' 
src='http://www.youtube.com/embed/$clip?&amp;fmt=22&amp;autoplay=1'>
</iframe>";?> ">next</span>

Есть ли какой-нибудь способ использовать php метод "next" для изменения текущего видео в iframe?

1 ответ

Решение

Нет! Вы не можете смешивать PHP с Javascript как это, PHP на стороне сервера в то время как Javascript на стороне клиента, на основе браузера. У вас есть 2 варианта, вы можете использовать AJAX загрузить следующее видео или использовать anchor чтобы перейти к следующему видео:

<?php
    $videos = array("0jBRY_Aki9s" , "1czXvHSjDac" , "1kbiUiRfnh8" , "1uTypnaP5X4" , "377kKBi6anQ"); 
    $rand = array_rand($videos);
    $rand_key = isset($_GET['id']) ? $_GET['id'] : $rand;

    echo "<iframe width='375' height='310' src='http://www.youtube.com/embed/".$videos[$rand_key]."?&amp;fmt=22&amp;autoplay=1'> </iframe>";

    $next = isset($videos[($rand_key+1)]) ? ($rand_key+1) : 0;
    $prev = isset($videos[($rand_key-1)]) ? ($rand_key-1) : count($videos)-1;
?> 

<a href="test.php?id=<?php echo $prev; ?>">prev</a> | <a href="test.php?id=<?php echo $next; ?>">next</a>
Другие вопросы по тегам