2014-08-29 127 views
1

在我的rails應用程序中,我有一個任務欄。當選擇複選框時,我需要過濾任務欄中的內容。爲此,我必須重新加載特定的div。如何使用Jquery重新加載特定的div?

我嘗試了以下。

$("input:checkbox").change(function(){ 
    '<%@final_tasks= @final_tasks.find(142)%>' 
    $("#task_content").reload(); 
}); 

這裏task_content是div類的名稱。但我的代碼沒有工作。請幫助我..

+0

「不工作」不是很具描述性,是嗎? – 2014-08-29 06:35:55

+0

是的。我是新來jquery – 2014-08-29 06:37:39

回答

3

您必須向您的控制器發送某種GET請求以獲取新信息。

$("input:checkbox").change(function(){ 
    $.get('/your_controller/task_content', function(data) { 
    $("#task_content").html(data.final_tasks); 
    } 
}); 

所以你的控制器會有一些查找操作。讓我們把它task_content

def task_content 
    @final_tasks= @final_tasks.find(142) 
    # though I assume you want this to be more dynamic so this is just an example 
    respond_to do |format| 
    format.json {render json: {final_tasks: @final_tasks} } 
    end 
end 

然後一定要在添加路由爲您routes.rb

get 'your_controller/task_content'  => 'your_controller#task_content' 
+0

我會試試這個,讓你知道 – 2014-08-29 06:43:14

0

嘗試像這樣

function get_data(val) 
{ 
    $.post('path_fro_data.php',{'value':val}, 
      function(data) 
       { 
       $("#div_task").html(data); 
       } 
     ); 

} 
在HTML

<input type="checkbox" id="check_1" name="check_1" value="1" onchange="get_data(this.value);"/> 
<input type="checkbox" id="check_2" name="check_2" value="2" onchange="get_data(this.value);"/> 

在服務器腳本中(用於檢查.php頁面)從數據庫中獲取與發送的數據相對應的數據。

0

創建一個名爲refresh的插件,因此您需要刷新內容的任何地方都可以調用該函數。請檢查下面的代碼。

$.fn.refresh = function(options) { 

    var options = { 
     contentURL : 'xxx.html' 
    }; 
    options = $.extend({},options); 
    return this.each(function() { 
     var obj = $(this); 
     setTimeout(function() { 
      obj.fadeOut('slow').load(options.contentURL).fadeIn('slow');  
     }, 2000);    
    }); 

}; 
$('#task_content').refresh();