2012-03-06 130 views
0

我正在用CodeIgniter構建一個Web應用程序。使用PHP和AJAX創建一個簡單的計數器

該網站上的帖子可以被用戶喜愛。我已經開發出吸引愛的總數的模型,但是我希望在添加新愛時使用AJAX進行更新。

總愛計數顯示用下面的代碼:

<p><a href="#" id="lovecounter"><?php if ($post->love) { echo $post->love; } else { echo 0; } ?></a></p> 

持有的愛數據的數據庫表被稱爲「post_rating」和結構如下:

  • ID
  • post_id
  • user_id
  • rating

默認值爲「0」或「愛」爲1。

我該從哪裏出發?

事實告訴我,當談到Javascript和AJAX時,我是一個總noob。我絕對不知道從哪裏開始,所以任何方向或想法都將非常感謝!

謝謝。

+0

向控制器發出AJAX請求(例如使用jQuery),並讓控制器迴應所需的響應;現在AJAX會選擇這種響應,並且您可以根據需要操作它 – 2012-03-06 16:25:20

+0

很好的解釋。謝謝你打破這個過程,Damien! – Leeloo 2012-03-06 17:40:12

回答

0

jQuery使得AJAX非常簡單。我最近自己學到了。爲了舉例,請閱讀thisthis

+0

謝謝你的聯繫,傑夫。我讀了第一個,但是它在JSP部分丟失了我。我將在早上觀看一些AJAX/CodeIgniter視頻。 – Leeloo 2012-03-06 17:38:27

+0

是的,第二個鏈接實際上更有用,適用於您的情況。 – 2012-03-06 18:29:43

0

在服務器上創建一個php頁面,接受由按下「愛」按鈕觸發的請求。在這個PHP頁面中,您可以遞增計數器並更新存儲的數據庫。然後當頁面被渲染時,它們可以從數據庫加載這個新的計數。使用像MVC這樣的設計模式使得這非常容易,因爲所有的請求都可以路由到正確的內容。我在www.phpblueprint.com上使用這種方法來從運行PHPBlueprint的服務器動態加載每個滑動頁面。

在客戶端,只需使用XMLHttpRequest觸發ajax事件或僅使用jQuery庫Ajax API(非常非常簡單而強大)就可以觸發ajax事件。

UPDATE

對不起剛纔看到你正在使用笨,這是一個偉大的MVC框架。 This will help you with what you want to do.

+0

乾杯,隊友。實際上,我的電腦上保存的視頻相信與否。我下載了整個系列!我明天再看一遍,看看我能否理解這一切。 – Leeloo 2012-03-06 17:36:30

0

首先,我認爲「評級」這一欄不是很有用,您只需要計算帖子通過「post_id」搜索的行數,並且您將擁有「愛」的數量「或」喜歡「的人投了票。

然後,關於JavaScript和Ajax,我也建議使用jQuery,這讓人很容易的工作,現在笨附帶有jQuery的http://codeigniter.com/user_guide/libraries/javascript.html

在你的情況JavaScript庫,在我的網站,在喜歡我們已經用這種方法:調用通過郵寄或URI或你想要的所有的數據的控制器功能,並使用JSON等的回聲應答:

<!-- language: lang-php --> 
$this->output->set_content_type('application/json') 
->set_output(json_encode(
    array('love' =>($this->loves_model->love_inserted() == TRUE)?'true':'false') 
); 

然後你只需要獲得通過jQuery的數據和用它改變DOM。

+0

我列入評級專欄的原因是因爲我計劃在下線添加「討厭」功能。恨將由-1表示。那有意義嗎? – Leeloo 2012-03-06 17:34:50

+0

你也可以計算仇恨,但如果你有很多人會消耗很多。 – Patroklo 2012-03-26 16:25:50

相關問題