2009-12-07 70 views
0

我希望建立一個頁面的網站,那上PHP(顯然是在利用CodeIgniter)和AJAX(由jQuery支持)運行,此刻我有被填充的菜單從數據庫中,什麼catergories depening被選定爲上線,使用這些結果再建一個一個網址,一個頁面的網站使用CodeIgniter和jQuery(AJAX)

if(isset($main_menu)) { 
    foreach($main_menu as $row) { 
     print "<li><a href='index.php/home/category/$row->category_id'>$row->category_name</a></li>"; 
    } 
} 

我的問題是,爲了這個,我需要運行所有從控制器查詢(家),因爲用戶永遠不會離開頁面,實際上我想要發生的事情是,如果用戶單擊例如Blog,我想要一個查詢來運行,從cont中進行選擇在數據庫的ent表中,與博客類別相關聯的所有內容我都希望以手風琴風格在我網站的right-content div中顯示。然後,如果用戶選擇例如靈感,則查詢再次運行,並且將靈感數據添加到與博客數據相同的div,但是以其自己的手風琴而不覆蓋博客數據。

是否可以遵循,更重要的是可能的,以及我會在哪裏開始,我可以使用CodeIgniterjQuery,並且真的很想推動這些技術和我自己。

感謝

+0

你不能使用其他控制器的AJAX請求嗎? – Franz 2009-12-07 18:34:43

+0

這就是我以爲我希望有人會支持我,y的想法是使用鏈接的URI運行查詢來獲取我需要的數據,並在AJAX中運行控制器。那是正確的方法嗎? – Udders 2009-12-07 18:37:32

回答

1

你只需要你的AJAX調用引用獨特的控制器,讓你的MVC分離。這將允許您保持後端代碼的可維護性,同時給出單個首頁的外觀。您需要確保控制器AJAX響應不會生成視圖數據,以將開銷降至最低。

您甚至可以將視圖數據加載爲partial,並將該字符串作爲AJAX響應返回。

你可以有任意數量的控制器/型號組合,以支持你的AJAX請求,即:

  1. /博客/獨特-博客標識符(博客控制器,指數法,獨特的-博客標識符第一個參數)
  2. /新聞/獨特的新聞標識符(新聞控制器,指數法,獨特的-博客標識符第一個參數)
2

我不知道笨,但我認爲這是最MVC的情況類似。在哪裏你會有方法返回AJAX請求的響應。

這是在Ruby和Prototype中,但你應該明白。

控制器:

def get_blog 
    # find stuff 
    # render or just return either js or json or xml or whatever 
end 

的Javascript:

new Ajax.Request('http://yourdomain.com/get-blog', { 
    onSuccess: function(response) { 
    // do something with your response data 
    } 
}); 

我道歉,這不是在PHP。