2012-03-11 40 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)