2013-02-12 122 views
5

我有一個表格,其中包含一個根據選定的下拉選項動態填充數據的表格。PHP使用ajax刷新表格內容

該下拉列表包含「已啓用」和「已禁用」兩個值。表中每行的第一列包含一個複選框。表結構如下。

[checkbox ]| user | status 

[checkbox1]| jim | enabled 

[checkbox2]| sam | disabled 

複選框值等於用戶標識符。

有一個按鈕用於更改所選用戶的狀態。

on button單擊選定的複選框值將使用ajax發佈,並且所選用戶的狀態會發生變化,但數據僅在頁面重新加載時刷新。

如何在狀態更改時刷新表格。這是我的腳本。

function Status(){ 
    var checked = [] 
    $("input[name='select[]']:checked").each(function() 
    { 
     checked.push(parseInt($(this).val())); 
    }); 
    if(checked!=''){ 

        $.ajax({ 
         type:'post', 
         url:site_url()+'/common/changeStatus', 
         data:{'checked':checked}, 
         dataType:'json', 
         async:false, 
         success:function(result){ 

          if(result!= "false"){ 
           $.msgBox({ 
            title:"Success", 
            content:"Status change successful" 
           }); 
           $(function() { 
            $('.msgButton').click(function (event) { 
             event.preventDefault(); 
             $("#table").load($(this).attr("#table")); 

            }); 
           });         
          } 

這裏#table是表包含數據的id。

+0

嘗試使用$('#response_div_id')。html(ajax response); – ripa 2013-02-12 07:14:20

+1

@ripa:使用這種方法的附加方法會將響應追加到div上?在這裏,我的迴應是真的或假的 – Avinash 2013-02-12 07:19:29

+0

你的changeStatus迴應改變的狀態,並把它放在狀態div。成功:函數(結果){$( '#response_div_id')HTML(結果)。 }); – ripa 2013-02-12 07:26:15

回答

2

你必須用PHP文件本身的當前狀態來構造表格。然後你可以發送它作爲迴應。在jquery AJAX響應中,您必須像這樣添加,

$(".table").html(resultTable); 

resultTable是您從PHP文件傳遞的響應。如果你只是這樣做,你可以得到更新狀態的表格。

+0

使用此功能的藥物會將反應追加到div上嗎?在這裏,我的回答是真的或假的 – Avinash 2013-02-12 07:25:07

+1

我可以做什麼像刷新頁面沒有發佈數據,如果真的其他什麼也不做。我以前使用location.reload(),但表單重新發送,並在Firefox中,它說重新發送頁面信息警報這是令人討厭的。 – Avinash 2013-02-12 07:28:06

+0

如何在不重新加載的情況下刷新?更好地傳遞「changeStatus」控制器的結果,並在此處構造表或者在控制器中構造並傳遞響應。然後用已構建的表替換現有的表。 – 2013-02-12 07:33:15