2013-02-12 5 views
5

Tôi có một biểu mẫu chứa bảng được điền dữ liệu theo tùy chọn được chọn trong menu thả xuống.Làm mới nội dung bảng PHP bằng cách sử dụng ajax

Trình đơn thả xuống chứa 2 giá trị "đã bật" và "đã tắt". Cột đầu tiên của mỗi hàng trong bảng chứa một hộp kiểm. Cấu trúc bảng như sau.

[checkbox ]| user | status 

[checkbox1]| jim | enabled 

[checkbox2]| sam | disabled 

Giá trị hộp kiểm tương đương với userid.

Có một nút để thay đổi trạng thái của những người dùng được chọn.

trên nút nhấp vào giá trị hộp kiểm đã chọn được đăng bằng ajax và trạng thái của người dùng đã chọn được thay đổi nhưng dữ liệu chỉ được làm mới khi tải lại trang.

Làm cách nào để làm mới bảng khi trạng thái được thay đổi. Đây là kịch bản của tôi.

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")); 

            }); 
           });         
          } 

Đây là id của bảng chứa dữ liệu.

+0

cố gắng sử dụng $ ('# response_div_id'). Html (phản hồi ajax); – ripa

+1

@ripa: Liều dùng bằng cách này gắn thêm phản hồi vào div? Ở đây trả lời của tôi là đúng hoặc sai – Avinash

+0

trong changeStatus của bạn, hãy lặp lại trạng thái đã thay đổi và đặt nó vào trạng thái div. thành công: function (result) {$ ('# response_div_id'). html (kết quả); }); – ripa

Trả lời

2

Bạn phải xây dựng bảng có trạng thái hiện tại trong chính tệp PHP. Sau đó, bạn có thể gửi nó như là phản ứng. Trong phản hồi Jquery AJAX bạn phải thêm như thế này,

resultTable là phản hồi bạn đang chuyển từ tệp PHP. Nếu bạn chỉ làm như vậy, bạn có thể lấy bảng có trạng thái cập nhật.

+0

Liều dùng bằng cách này gắn thêm phản hồi vào div? Ở đây trả lời của tôi là đúng hoặc sai – Avinash

+1

tôi có thể làm điều gì đó giống như trang làm mới mà không đăng dữ liệu nếu đúng không làm gì cả. Tôi đã sử dụng location.reload() trước đó nhưng biểu mẫu được gửi lại một lần nữa và trong firefox nó nói resending trang alertemation cảnh báo đó là gây phiền nhiễu. – Avinash

+0

Làm cách nào để bạn có thể làm mới mà không cần tải lại? Tốt hơn thông qua kết quả từ bộ điều khiển "changeStatus" và xây dựng bảng ở đây chính nó hoặc xây dựng trong bộ điều khiển của bạn và vượt qua phản ứng. sau đó thay thế bảng hiện tại bằng bảng đã được xây dựng. –