2013-02-12 5 views
5

У меня есть форма, которая содержит таблицу, которая динамически заполняется данными в соответствии с выбранной опцией в раскрывающемся списке.PHP Обновить содержимое таблицы с помощью ajax

Выпадающий список содержит 2 значения «включено» и «отключено». В первом столбце каждой строки таблицы содержится флажок. Структура таблицы следующая.

[checkbox ]| user | status 

[checkbox1]| jim | enabled 

[checkbox2]| sam | disabled 

Значение флажка равно идентификатору пользователя.

Существует кнопка для изменения статуса выбранных пользователей.

при нажатии кнопки выбранное значение флажка публикуется с использованием 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 является идентификатором таблицы, содержащей данные.

+0

попробуйте использовать $ ('# response_div_id'). Html (ajax response); – ripa

+1

@ripa: Dosent, используя это, добавляет ответ на div? Здесь мой ответ является либо истинным, либо ложным – Avinash

+0

в вашем changeStatus эхо измененный статус и поместить его в div состояния. успех: функция (результат) {$ ('# response_div_id') HTML (результат);. }); – ripa

ответ

2

Вы должны построить таблицу с текущим статусом в самом файле PHP. Затем вы можете отправить его как ответ. В ответ Jquery AJAX вы должны добавить как это,

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

resultTable является ответом вы передаете из PHP-файла. Если вы делаете это только так, вы можете получить таблицу с обновленными статусами.

+0

Dosent, используя это, добавляет ответ на div? Здесь мой ответ либо истинный, либо ложный. – Avinash

+1

Могу ли я сделать что-то вроде страницы обновления, не отправляя данные, если true ничего не делает. Раньше я использовал location.reload(), но форма снова отправляется повторно, а в firefox говорится о повторном уведомлении об обновлении страницы, которое раздражает. – Avinash

+0

Как вы можете обновить без перезагрузки? Лучше передайте результат от контроллера changeStatus и создайте таблицу здесь самостоятельно или создайте в своем контроллере и передайте ответ. затем замените существующую таблицу на построенную. –

Смежные вопросы