2014-07-23 27 views
0

我正在嘗試在我的網站上發表評論。並且用戶註釋存儲在數據庫中。以下是我的數據庫結構:如何將隱藏/顯示屬性保存到數據庫?

+----------+------------------+------+-----+---------+----------------+ 
| Field | Type    | Null | Key | Default | Extra   | 
+----------+------------------+------+-----+---------+----------------+ 
| id  | int(10) unsigned | NO | PRI | NULL | auto_increment | 
| name  | varchar(128)  | YES |  | NULL |    | 
| comment | text    | NO |  | NULL |    | 
| post_id | int(10)   | NO |  | NULL |    | 
| status | tinyint(1)  | NO |  | NULL |    | 
| created | datetime   | YES |  | NULL |    | 
| modified | datetime   | YES |  | NULL |    | 
+----------+------------------+------+-----+---------+----------------+ 

如何在我的數據庫中保存評論被隱藏或顯示?

爲清楚起見,這裏的情況,我想達到的目標:

用戶:然後輸入評論提交,評論,然後保存。狀態值是1表示註釋被顯示。

管理員(決定評論是不恰當的):隱藏評論狀態值應該是0意味着評論現在被隱藏。

我該怎麼做?目前我所能做的就是jquery.hide()和.show(),但是當重新加載頁面或刷新顯示?任何幫助的建議高度讚賞

jQuery的

$(".hide_comment").click(function() { 
    var id = $(this).data('id'); 
    console.log($(this).data('id')); 
    $('#comment-' + id).hide(); 
}); 

$(".show_comment").click(function() { 
    var id = $(this).data('id'); 
    console.log($(this).data('id')); 
    $('#comment-' + id).show(); 
}); 
+0

當用戶提交評論和管理員更改時更新數據庫。爲什麼使用jQuery? –

+0

請告訴我確切的要求。如果評論狀態從管理端禁用,您是否想要隱藏評論?如果你想隱藏評論,如果狀態被禁用,那麼在迭代評論時,你應該檢查你是否可以顯示評論的狀態。如果你想從管理端更改狀態,那麼你必須使用jQuery Ajax來改變評論狀態。讓我清楚地知道 – Jagadeesh

回答

1

對於如:

添加一個新的領域

`is_visible` tinyint(1) not null default 1 

然後利用服務器端腳本生成的html:

// PHP Example 
foreach($db_results as $each) { 
    echo '<div data-comment-id="' . $each->id . '" class="comment-box"' . ($each->is_visible?' style="display: block;"':'') . '>'; 
    echo $each->comment; 
    echo '</div>'; 
} 

那麼對於客戶端腳本使用jQuery:

$('.comment-box').click(function(e){ 
    e.preventDefault(); 
    $(this).toggle(); 
    // Also you can make an ajax request to server to save visibility status and send id of comment by reading data as: 
    console.log($(this).data('comment-id')); 
}); 
0

您可以修改該表,接受一個新列 - 是否隱藏或不便

alter table comments add column ishidden bool; 

和處理與Ajax調用的狀態變化:

$(".hide_comment").click(function() { 
     var id = $(this).data('id'); 
     console.log($(this).data('id')); 

     var currentData = { 
       id : id, 
       isHidden: true 
      }; 

     $.ajax({ 
      url: "some.php", 
      data: currentData, 
      success: function(response){ 
         if(response.itHasBeenSaved){ 

          $('#comment-' + id).hide(); 
          } 
       } 
      }); 

    }); 

你可以做節目一樣。您將嘗試更改服務器上數據庫中的狀態(這就是您使用ajax調用的原因),然後如果ajax調用成功,則相應地更改狀態。

相關問題