2011-05-26 112 views
2

我有一個搜索頁面,用戶可以在搜索框中鍵入內容,或者他們可以使用字母順序列表來搜索他們正在查找的記錄。例如,他們點擊「a」,並出現以字母「a」開頭的所有記錄。通過點擊複選框來過濾搜索結果

我還希望每個記錄都有一些標籤,然後我希望能夠根據哪些標籤已被選中來篩選記錄 - 最好使用複選框。

例如,標籤可能會被着色,記錄代表鞋子。將會出現藍色,黃色,黑色,棕色等複選框。起初所有的顏色都會顯示出來,但是如果用戶點擊棕色,那麼除棕色鞋子之外的所有顏色都會消失。

我使用CakePHP

+0

我覺得你最好使用AJAX來過濾的客戶端的結果,而不是通過PHP使其在服務器端的建議 – k102 2011-05-26 11:21:48

+0

嘿夥計,謝謝。然後我會開始閱讀ajax。如果您想給我一些關於首先看什麼的路線圖,或者我會如何去做我想做的事情,那將不勝感激! – soreToe 2011-05-26 12:10:49

+0

試着研究在CakePHP中獲取JSON/AJAX結果。 然後檢查如何在jQuery中使用事件。 然後,您可以加載它們進行搜索,並在觸發函數的複選框中設置jQuery事件。 這很簡單,jQuery有非常好的文檔。 – 2011-06-30 10:27:26

回答

0

jQuery UI Autocomplete Plugin是你在找什麼。

您可以嘗試在這裏演示 - http://docs.jquery.com/UI/Autocomplete#demo

在演示中,他們已經使用靜態局部選項。但是,您也可以使用遠程網址,並根據您的搜索字詞生成特定列表。看看各種選項。

請試試看,如果您遇到問題(我相信您會的),請再次詢問。

+0

感謝您的迴應。我會看看它,但我剛剛設法在該頁面上的搜索框中獲取cakephp ajax helper的自動完成功能,並且我聽說使用jQuery與默認原型庫存在問題。另外根據我對自動完成的瞭解,我不知道如何將其轉換爲複選框,但我會閱讀遠程URL thingy。你介意給我多一點信息嗎?我在這是一個全新的。謝謝! – soreToe 2011-05-26 13:53:06

+0

對不起,我沒有CakePHP和原型的經驗。我使用Zend Framework和jQuery :) – emaillenin 2011-05-26 17:08:18

1
// cakephp view 
echo $this->Form->checkbox("Model.color.0", array("value"=>"green")); 

// cakephp controller 
$filtered = $this->Model->find("all", array(
    "conditions"=> array(
    // ... 
    ) + $this->data 
)); 
//or 
$this->paginate['conditions'] = array(
    //... 
) + $this->data; 
$filtered=$this->paginate();