отправить параметр модальному, а затем удалить строку

После 2 дней исследований я решил обратиться за помощью, потому что я не могу двигаться дальше.

Я отображаю таблицу пользователей на своем сайте. Каждая строка содержит данные пользователя и кнопку удаления пользователя.

Если вы нажмете кнопку «Удалить», появится модальное окно с вопросом, хотите ли вы удалить этого определенного пользователя. Вот почему я должен отправить параметр, который является именем пользователя.

Это модальное окно подтверждения с легендой: Вы уверены, что хотите удалить //имя пользователя//?

Дело в том, что я знаю, как отправить параметр, но не могу интегрировать его с функцией удаления jquery. Также у меня нет четкого представления о том, как удалить строку, так как я действительно новичок в js и jquery.

Пока это то, что у меня есть (обратите внимание, что я использую механизм шаблонов Smarty):

<tbody>
    {foreach $frontusers as $frontuser}
    <tr>
    {if $frontuser->frontavatar_id eq null}
       <td><img src="{site_url()}assets/img/avatar.png" alt="" /></td>
       {else}
       <td><img src="{site_url()}assets/img/avatar1.jpg" alt="" /></td>
    {/if}
    <td class="hidden-phone">{$frontuser->username}</td>
    <td>{$frontuser->name}</td>
    <td>{$frontuser->lastname}</td>
    <td class="hidden-phone">{$frontuser->email}</td>
    <td class="hidden-phone">{$frontuser->state}</td>
    <td class="hidden-phone">{$frontuser->creation_date|date_format:"%Y/%m/%d"}</td>

    {if $frontuser->status eq 2}
       <td ><span class="label label-success">Activo</span></td>
    {else}
       <td ><span class="label label-warning">No Activo</span></td>
    {/if}

    <td><a class="btn mini blue-stripe" href="{site_url()}admin/editFront/{$frontuser->id}">Modificar</a></td>

    <td><a href="#" data-id="{$frontuser->id}" class="btn mini red-stripe confirm-delete" role="button">Delete</a></td>
    </tr>

    <!-- modal -->
    <div id="myModal3" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel3" aria-hidden="true">
    <div class="modal-header">
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
       <h3 id="myModalLabel3">Delete</h3>
    </div>
    <div class="modal-body">
       <p>Are you sure you want to delete user ....?</p>
    </div>
    <div class="modal-footer">
       <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
       <button data-dismiss="modal" class="btn red" id="btnYes">Confirm</button>
    </div>
    </div>
    <!-- end modal -->

    {foreachelse}
<tr>
       <td colspan="2"><span class="text-error"><i class="icon-exclamation"></i> No hay Usuarios cargados.</span></td>
     </tr>
    {/foreach}
</tbody>

это мой файл js (я получил его по этой ссылке)

$('#myModal3').on('show', function() {
var id = $(this).data('id'),
    removeBtn = $(this).find('.red');
})

$('.confirm-delete').on('click', function(e) {
e.preventDefault();

var id = $(this).data('id');
$('#myModal3').data('id', id).modal('show');
  });

$('#btnYes').click(function() {
// handle deletion here
var id = $('#myModal3').data('id');
$('[data-id='+id+']').remove();
$('#myModal3').modal('hide');
   });

Итак, подводя итог, мне нужно адаптировать свой код, чтобы сделать следующее:

  1. Отправьте имя пользователя в качестве параметра модальному
  2. Удалить всю строку, если нажата кнопка подтверждения

ОБНОВЛЕНИЕ:

Модальное окно работает, то есть открывается и закрывается. Кнопка подтверждения модала удаляет только «кнопку удаления» из строки, а не всю строку.


person Limon    schedule 21.11.2013    source источник
comment
Насколько это работает до сих пор? Модальное окно открывается?   -  person steve    schedule 21.11.2013
comment
@steve да, извините, я забыл включить это. я обновлю   -  person Limon    schedule 21.11.2013
comment
Я подозреваю, что идентификатор неправильно передается кнопке «Подтвердить» в последнем фрагменте javascript. Чтобы проверить это, вы можете добавить: alert(id); чуть ниже, где есть комментарий //обработать удаление здесь. Всплывает ли что-нибудь в качестве предупреждения при нажатии кнопки.   -  person steve    schedule 21.11.2013


Ответы (1)


Наконец-то смог заставить это работать. вот короткая версия этого (без ajax и smarty и harcoded пользователей) онлайн и работает:

http://bootply.com/97366

Просмотр:

<tbody>
{foreach $frontusers as $frontuser}
   <tr>
    {if $frontuser->frontavatar_id eq null}
    <td><img src="{site_url()}assets/img/avatar.png" alt="" /></td>
    {else}
    <td><img src="{site_url()}assets/img/avatar1.jpg" alt="" /></td>
    {/if}
    <td class="hidden-phone">{$frontuser->username}</td>
    <td>{$frontuser->name}</td>
    <td>{$frontuser->lastname}</td>
    <td class="hidden-phone">{$frontuser->email}</td>
    <td class="hidden-phone">{$frontuser->state}</td>
    <td class="hidden-phone">{$frontuser->creation_date|date_format:"%Y/%m/%d"}</td>

    {if $frontuser->status eq 2}
    <td ><span class="label label-success">Activo</span></td>
    {else}
    <td ><span class="label label-warning">No Activo</span></td>
    {/if}

    <td><a class="btn mini blue-stripe" href="{site_url()}admin/editFront/{$frontuser->id}">Edit</a></td>

    //here in data-title i store the username so later i can "catch it" in the jquery function
    <td><a href="#" class="confirm-delete btn mini red-stripe" role="button" data-title="{$frontuser->username}" data-id="{$frontuser->id}">Delete</a></td>
    </tr>

    <!-- modal -->
    <div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel3" aria-hidden="true">
    <div class="modal-header">
      <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
      <h3 id="myModalLabel3">Delete</h3>
    </div>
    <div class="modal-body">
      <p></p>
    </div>
    <div class="modal-footer">
      <button class="btn" data-dismiss="modal" aria-hidden="true">Cerrar</button>
      <button data-dismiss="modal" class="btn red" id="btnYes">Confirmar</button>
    </div>
   </div>                    
  <!-- end modal -->

  {foreachelse}
  //no users are in the db
  <tr>
    <td colspan="2"><span class="text-error"><i class="icon-exclamation"></i> No hay Usuarios cargados.</span></td>
  </tr>
 {/foreach}
 </tbody>

Js-файл:

//after first function is triggered, modal shows and this function runs
$('#myModal').on('show', function() {
 //catch the id for later deletion, and username to display on modal
 var id = $(this).data('id'),
 username = $(this).data('usern');

 $('#myModal .modal-body p').html("Do you want to delete user: " + '<b>' + username + '</b>' + ' ?');
 })

//when clicking "delete" button from a row, this is the first function that runs
$('.confirm-delete').on('click', function(e) {
 e.preventDefault();
 //catch the user id and username
 var id = $(this).data('id');
 var user = $(this).data('title');

 //assign to the modal id and username
 $('#myModal').data('id', id).modal('show');
 $('#myModal').data('usern', user).modal('show');
});

$('#btnYes').click(function() {
 var id = $('#myModal').data('id');

 //sending to php the row to be deleted from the db
 $.ajax({
  url: 'deleteFrontUser',
  type: 'POST',
  data: 'id='+id,
  success: function(html){

 //removing entire row
 $('[data-id='+id+']').parents('tr').remove();
 $('#myModal').modal('hide');
 }      
 });
return false;
});
person Limon    schedule 28.11.2013