2012-09-06 58 views
-1

我正在爲一家制作公司製作一個小型網站,當用戶從我的菜單中點擊導演的名字時,所有菜單項目消失,所有顯示的內容是由此產生的傳記和作品導向器。識別哪個按鈕被點擊使用php

我遇到的問題是我不知道如何通過javascript變量來負責識別哪個導演被點擊到php,以便它實際上可以從數據庫中檢索導演的信息......是否有一種不使用GET或POST的方法,因爲我試圖在頁面間以單一的無縫動畫方式進行維護。

爲了澄清,我會想包含單個頁面所有這一切,沒有任何

彈出式網頁

回答

1

有可能不同的基於腳本的解決方案,但它可以在沒有腳本來完成。

使用具有多個提交按鈕的表單。給每個唯一的名稱,只有被點擊的名稱將與表單一起提交。

您還可以將每個導演的所有信息加載到頁面中,只顯示被點擊的信息,無需單獨調用服務器。

或者,您可以使用AJAX請求。使用請求中點擊的按鈕(例如其名稱,ID或類)的唯一標識符,以便返回適當的信息。但是這樣的功能比普通的表單或僅顯示或隱藏頁面中已存在的元素更加容易出錯。

+0

是的,我認爲AJAX,但上次我沒有經驗導致了一個相當混亂的代碼混亂......我也考慮過一次加載所有這些,但我擔心爲訪問者加載時間。不過,這可能是這種情況下的最佳解決方案。 –

2

您應該使用AJAX來實現這一點。雖然你仍然在技術上傳遞GET或POST變量,但它將是無縫的。

0

我認爲RobG建議一次加載所有數據,然後使用JavaScript隱藏/顯示你想要的是在這種情況下要走的路。假設你有3個導演,並且你給他們每個包含他們的生物和工作的'div',並且每個div都有一個id ='dir1','dir2'和'dir3'。他們都有一個名爲'directorInfo'的類,當頁面首次加載時使用屬性style ='display:none'隱藏它們。將有三個按鈕對應於每個導演名爲'but1','but2','but3',每個導演都有一個值= 1,2或3,我也會給每個導演一個class ='directorButtons ',以便他們更容易識別您的JQuery。

使用您的JQ,將按鈕綁定到單擊事件。像這樣:
$('.directorButtons').on('click', function(){
$('.directorInfo').hide();
$('#menuItems').hide();
$('#dir'+this.val()).show();
return false;
});
$('.close').on("click", function(){
//give the user a way to unhide the menu.
$('.directorInfo').hide();
$('#menuItems').show();
return false;
});

代碼的第二部分是因爲每個格也應該有一個關閉按鈕,或「A」與HREF =「#」和類標籤內部的X =「關閉」,使得當用戶點擊X,他們將被帶回到開始,菜單將再次可見。

這是一個簡單的例子,你可以調整做很多(如使用模態和動畫)。這樣做而不是使用AJAX還可以提供立即響應而不是等待服務器響應的額外好處。