2015-03-26 5 views
2

Здравствуйте, я пытаюсь удалить строку в базе данных с помощью сообщения ajax, но проблема в том, что строка удаляется только один раз на загрузку страницы. Строка освобождается от HTML DOM, все, что я нажимаю на кнопку удаления, но база данных удаляет только одну запись. Я хочу удалить его в базе данных каждый раз, когда нажимаю кнопку удаления. Как я могу это достичь?CodeIgniter ajax post работает только один раз

Мой взгляд

<tbody id="tbody"><?php 
    $count = 1; 
    foreach($rows as $row):?> 
     <tr> 
      <td><?=$count?></td> 
      <td><a href="basic_table.html#"> 
       <?=$row->FirstName." ".$row->LastName?></a> 
      </td>       
      <td class="hidden-phone"><?=$row->Email?></td> 
      <td><?=$row->Password?></td> 
      <td><span class="label label-warning label-mini"> 
       <?=date("m/d/Y", strtotime($row->Created))?></span> 
      </td> 
      <td> 
       <button class="btn btn-success btn-xs"> 
        <i class="fa fa-check"></i></button> 
        <button class="btn btn-primary btn-xs"> 
        <i class="fa fa-pencil"></i> 
       </button> 
       <button id="delete" data-id="<?=$row->id?>" 
        data-url="<?=base_url()?>" class="btn btn-danger 
        btn-xs"><i class="fa fa-trash-o "></i> 
       </button> 
      </td> 
     </tr><?php 
     $count++; 
    endforeach?> 
</tbody> 

сценарий

$(document).ready(function() 
{ 
$("#tbody").on('click','#delete', function() 
{ 
    var id = $("#delete").data("id"); 
    var url = $("#delete").data("url"); 

    $.post(url + "users/delete", { id : id, cache: false } , function() 
    { 

    },"json"); 

    $(this).closest('tr').detach(); 
}); 
}); 

ответ

1

Пожалуйста, дайте скрипт контроллера CodeIgniter

Вы должны изменить якорь тег и добавить preventDefault() для предотвращения перезагрузки страницы

$(document).ready(function(){ 
    $("#tbody").on('click','#delete', function(e){ 
     //You must add e.preventDefault() to avoid reloading page 
     e.preventDefault(); 
     var id = $("#delete").data("id"); 
     var url = $("#delete").data("url"); 

     $.post(url + "users/delete", { id : id, cache: false } , function(){ 
     },"json"); 

     $(this).closest('tr').detach(); 
    }); 
}); 
+0

Спасибо вам, что вы решили мою проблему. Извините, почему я не разместил контроллер или модель, потому что я знаю, что моя логика в порядке. еще раз спасибо – user3862830

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