Laravel модальное скрытое значение для вызова маршрута - PullRequest
0 голосов
/ 09 марта 2019

У меня есть модал со скрытым полем моего текущего идентификатора, который мне нужен.

Мне нужно нажать кнопку в моем модале, чтобы подтвердить, нужно ли мне удалять пользователя.Я установил форму, не уверен, что это лучший вариант, и в javascript установил attr формы для маршрута, но маршрут не находит правильный путь, хотя в URL он говорит, что правильно, что я пропускаю, возможно, маршрут должен бытьв PHP вместо JS?

<div class="modal" id="mdelete" role="dialog" aria-labelledby="moddelete">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="moddelete">Confirm Delete</h5>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
      </div>
      <div class="modal-body">
        <p>Are you sure you want to delete</p>
      </div>
      <div class="modal-footer">
        <form method="POST" id="formdelete">
          <input type="hidden" name="txtid" id="txtid" />
          <input type="text" name="uid" id="uid" />
          <button type="button" class="btn btn-danger " data-dismiss="modal">No</button>
          <span class="text-right">
            <button type="submit" class="btn btn-primary btndelete">Yes</button>
          </span>
        </form>
      </div>
    </div>
    <a href="{{ route('users.show', $user->id) }}" class="btn btn-primary mr-2">Show</a>
    <a href="{{ route('users.edit', $user->id) }}" class="btn btn-info text-white mx-2">Edit</a>
    <button type="button" class="btn btn-danger ml-2" data-toggle="modal" 
            data-target="#mdelete" data-id="{{$user->id}}" 
            data-name="{{$user->username}}">Delete</button>

    $(document).ready(function() {
      $('#mdelete').on('show.bs.modal', function (event) {
        var button = $(event.relatedTarget);
        var userid = button.data('id');
        var uname = button.data('name');
        var modal = $(this);
        modal.find('#txtid').val(userid);
        modal.find('#uid').val(userid);
        modal.find('.modal-body').text('Are you sure you want to delete ' + uname);
      })
      $('#formdelete').submit(function() {
        var userid = $('#txtid').val();
        $('#formdelete').attr("action", "route('$users.destroy',$user->"+ userid +")");
        $('#formdelete').submit();
      });
    });

1 Ответ

0 голосов
/ 09 марта 2019

Ваша попытка сгенерировать маршрут не удастся, потому что вы не используете шаблон правильно:

$('#formdelete').attr("action", "route('$users.destroy',$user->"+ userid +")");

Вы можете попытаться сделать так, чтобы ваш маршрут принимал необязательное поле пользователя, а затем сгенерировать маршрут к нему, и с помощью js добавить значение идентификатора пользователя примерно так:

<script>
    $(function() {
        var form = $('#formdelete');
        var path = '{{ route("users.destroy") }}';

        $('#formdelete').submit(function(event) {
            var form = $(this);
            var userid = form.find('#txtid').val();
            $('#formdelete').attr("action", path + '/' + userid);
            $('#formdelete').submit();
        }); 
    });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...