2012-03-11 39 views
0

我正在重新设计和开发的当前网站是http://www.gdi-brighton.co.uk/。大部分更改都是美观的,并且我已将导航条拆分为3个链接:GDI-Brighton(主页),Profiles和News。该网站使用以前的学生在PHP中构建的自定义CMS。在索引页面加载随机配置文件,jQuery

访问主页时,我想要随机加载一个学生档案页面。每个学生都有一个id和name_url,您可以在当前网站上点击某个学生的缩略图时看到。我很熟悉Math.floor(Math.random()),但不知道从哪里开始。

如果您需要更多信息,请让我知道。谢谢你的帮助。

Ryan

回答

1

如果您使用的是关系型数据库和学生实体的ID位于序列(例如,增加1等),那么您可以通过对数据库的简单查询获得当前序列号(您可以在网络上搜索nextval()) 。当您生成一个随机的学生ID时,将此编号分配给一个变量并将其用作上限。为了处理生成的随机数不符合有效学生ID的情况(即某些学生可能已从数据库中删除),可以使用包含随机ID生成代码但存在的while循环在一个有效的id代。之后,只需使用此有效的随机ID查询数据库并获取相应学生的配置文件的URL即可。

+0

好的,这似乎够清楚了,使用'nextval()'找到最上面的id号,将它设置为一个变量,检查它是否有效并拉出url。我问过谷歌,似乎只能使用sql和oracle查找查询。有没有一种方法可以使用jquery来查找数据库以查找序列号? – Ryan 2012-03-11 10:21:08

+0

您需要进行ajax调用。去谷歌上查询。 – Juvanis 2012-03-11 10:23:19

+0

是的,抱歉等待。我不得不进行其他工作,并且我意识到这需要一些超出我的知识(这是无)的PHP,所以我不得不找另一名学生来帮忙。谢谢你的帮助。 – Ryan 2012-03-14 09:54:12

0

你可以在你的PHP中做到这一点。这里是概念(而不是实际的工作代码):

$result = mysql_fetch_row(mysql_query("SELECT MIN(id), MAX(id) FROM table")); 
$min = $result[0]; $max = $result[1]; 
$id_to_retrieve = rand($min, $max); 
$random_student = mysql_query("SELECT * FROM table WHERE id = {$id_to_retrieve} LIMIT 1"); 

注意,这不检查与ID记录是否在过去的查询存在。如果它不存在,您可以获得另一个随机ID或获取最接近的ID。

完成这一切后,您输出随机学生卡并用jQuery(使用load()或其他东西 - 您不需要为PHP传递任何变量到PHP)检索结果。

0

您可以选择一个随机的网址上的客户端,也与此代码:

var url = $('li.illustration:eq(' 
      + Math.floor($('li.illustration').length * Math.random()) 
      +')>a').attr('href') 

但感觉太hackish的和服务器似乎做它最好的地方。

0

你可以用这样的东西?

var randomnumber = Math.floor(Math.random() * 3); 
if (randomnumber == 0) { DisplayProfile(0); } 
if (randomnumber == 1) { DisplayProfile(1); } 
if (randomnumber == 2) { DisplayProfile(2); } 

DisplayProfile将包含jQuery代码,将组织你的页面显示基于传递的信息的权利信息(在我的例子0,1或2)