2011-01-18 80 views
0

我的用戶收件箱中有一項功能,允許用戶選中/取消選中他們希望收藏的收件箱中的郵件。Php裏面的JavaScript函數?

我目前正在測試當用戶選中該框(點擊圖像並導致它從灰色變爲顏色意味着該框被選中)時發生的情況。

反正你可以從代碼中看到下面當箱器isChecked這個網址是假設要加載:http://mysite.com/messages/favourite_checked

用戶已經檢查了盒子上想添加到年底該行的MESSAGE_ID然後加載我的控制器「消息」和方法「favourite_checked」,然後傳遞一個變量,從url中獲取message_id,將其存儲在一個變量中,然後將其發送給我的模型,並將其用於mysql查詢。

基本上我更新了我的消息表的收藏夾列,並將其設置爲= 1,其中來自url的message_id與我的數據庫中的消息表中的消息匹配。所以,當發現匹配時,該行中的「最喜愛的」列被更新爲1. 1 =最喜歡的0 =不是最喜歡的。

任何我只是想我會說清楚發生了什麼事..

我的問題是沒有任何反應,當我選中該複選框,沒有被更新,所以我覺得我必須做一些錯誤的,我嘗試添加該id在JavaScript函數中的url。

我試過$(後)..也沒有任何反應。

也許有人可以發現它,因爲我真的不知道問題是什麼。

<script type="text/javascript"> 

// favourite check box 
    $('input.favourite:checkbox').simpleImageCheck({ 
    image: '<?php echo base_url()?>images/messages/check.png', 
    imageChecked: '<?php echo base_url()?>images/messages/unchecked.png', 
    afterCheck: function(isChecked) { 
    if (isChecked) { 



    //query to db from php to update favourite number to 1 
    $.get('http://mysite.com/messages/favourite_checked'+'<?php foreach ($query as $row): ?><?php $row['id']; ?><?php endforeach; ?>'); 

    } 
// else (!isChecked) 
//  { 
//   //query to db from php to update favourite number to 0 
//    $.get('http://mysite.com/messages/favourite_unchecked'); 
//  } 
    } 
}); 
</script> 
+2

JS在PHP解析後看起來像什麼? – scragz 2011-01-18 21:26:04

+0

不確定你的意思,但是當我檢查框時沒有發生實際情況。 – LondonGuy 2011-01-18 21:38:30

回答

5

我認爲你的基本問題是關於何時PHP運行vs javascript的一些混淆。

你放在頁面上的PHP是服務器端,它將首先加載,然後JavaScript將運行客戶端。

這這兒的一部分:

$.get('http://mysite.com/messages/favourite_checked'+'<?php foreach ($query as $row): ?><?php $row['id']; ?><?php endforeach; ?>'); 

好像你是想根據你檢查一下這個是動態的,但我沒有看到的網址是怎麼回事具體告訴你在找什麼。

1

關於PHP:

我想你想替換此:

<?php $row['id']; ?> // does nothing 

與此:

<?php echo $row['id']; ?> // echo's the id 

雖然我可不是確保所將工作,因爲你有在那裏的循環會產生一個奇怪的網址,只是添加所有ID的...

關於JavaScript的:

我可不是熟悉simpleImageCheck()功能您呼叫,但它有一個onClickonChange事件處理程序?否則,我根本看不到您的代碼正在運行。