2012-12-01 21 views
0

我知道这是一个问题有点模糊,但我有一个只是YouTube视频墙的网页。我把视频分成称为行的div,每行大约有3个,也许有4个视频。在我的脚本中,我使用jQuery函数为每个视频创建SWF对象,并且我有一些简单的php在wordpress循环内创建每行视频。如何使用ajax加载一排YouTube视频,然后进入下一行

我的问题是;有没有办法加载一行,3或4个视频,然后完成继续wordpress循环到下一行,依此类推。我相信我的答案在于ajax,但我没有经验。我知道jQuery有一些很棒的工具和方法可以用来帮助Ajax,但我不知道从哪里开始,我甚至在寻找什么。

从字面上看,网页所做的就是循环下面这段代码,这会稍微减少一点。但是它运行这个函数3次,然后进入下一行,并再次执行3次,直到wordpress表示该类别中没有更多帖子。我怎样才能让Ajax一次做一行,而不是“一次全部”。

<script type="text/javascript"> 
    var youtubeID = '<?php echo $urlYoutube; //pass the php var to js var?>'; 
    var divID = '<?php echo $divName;?>'; 
    getVideoSML(youtubeID, divID); 
</script> 

如果不是答案,我们将不胜感激,向正确的方向提供良好和大方的'推动'。

回答

0
<script type="text/javascript"> 
    var youtubeID = '<?php echo $urlYoutube; //pass the php var to js var?>'; 
    var divID = '<?php echo $divName;?>'; 
    getVideoSML(youtubeID, divID); 
</script> 

这不是你如何将数据从PHP传递到Javascript。您应该阅读有关JSONAjax的内容。互联网上有很多教程,并且通过jQuery(甚至可以看一下),所有内容都变得非常简单。

我不认为我得到了这个问题,但我认为你有一个理解循环的问题。 AJAX只是一种以非同步方式加载页面的方式。如果我得到它的权利,你应该使用2循环:

$vps = 4; // number of videos per row 
while (/* there are rows to be printed */) { 
    for ($i = 0; $i < $vpr; $i++) { 
     /* print the video */ 
    } 
} 
+0

为什么我需要通过数据的方式,完成它,因为它只会是一个短的字符串传递。至于循环,wordpress已经处理了WHILE循环,我也为FOR循环写了一些代码,但是我想我想知道的是关于打印顺序。是不是所有循环的迭代都完成了,那么浏览器一次打印所有的数据,因此增加了整个页面加载?如果是这样,我想完成加载页面,然后开始加载行 –

+1

@NilsR,那么你需要加载与AJAX的行。 PHP只会在加载所有内容时显示最终页面,并且会增加页面加载。使用AJAX是加载页面然后加载每个视频的好方法;只需考虑用户禁用JavaScript的情况(但AJAX不起作用)。 – Shoe

+0

你知道我可以阅读的任何链接或者在这种情况下实现ajax的方式或任何可以帮助我滚动的方法吗? –