Отправить данные с блейда в параметры функции onclick - PullRequest
0 голосов
/ 23 апреля 2020

У меня возникла эта проблема, позвольте мне сначала показать вам мой код:

@foreach ($categories as $category)
<tr>
 <td>{{ $category->category_name }}</td>
  <td>{{ $category->category_description }}</td>
    <td>
    <button type="button"
        id="{{ $category->id }}"
       class="btn btn-info"
       onClick="{{category_manage(this, $category)}}"
    >Update / Delete</button>
  </td>
 </tr>
@endforeach

// jQuery
function category_manage(id, payload) {
  // payload is the category details that i send through second parameters
  console.log(id, payload);
}

Есть ли способ сделать это в Laravel и jQuery?

Ответы [ 5 ]

0 голосов
/ 23 апреля 2020

Вы должны быть реализованы с помощью события jQuery, как показано в следующем примере.

@foreach ($categories as $category)
<tr>
 <td>{{ $category->category_name }}</td>
  <td>{{ $category->category_description }}</td>
    <td>
    <button type="button"
        id="{{ $category->id }}"
       class="btn btn-info submitBtn"
       data-category="{{$category}}"
    >Update / Delete</button>
  </td>
 </tr>
@endforeach
$(document).ready(function() {
 $(document).on('click','.submitBtn',function(){
   console.log(this.attr('id'),this.data('category'));
 });
});

0 голосов
/ 23 апреля 2020

Если вы используете jQuery, вы можете сделать это более разделенным, как в следующем примере.

@foreach ($categories as $category)
<tr>
  <td>{{ $category->category_name }}</td>
  <td>{{ $category->category_description }}</td>
  <td>
    <button 
      type="button"
      id="{{ $category->id }}"
      class="btn btn-info"
      data-category="{{ $category }}">
        Update / Delete
    </button>
  </td>
</tr>
@endforeach
$(document).ready(function() {

  $('.btn[data-category]').on('click', tableButton);

  function tableButton(event) {
    var elem = $(event.target);
    var id = elem.attr('id');
    var payload = elem.data('category');

    console.log(id + " " + payload);
  }

});
0 голосов
/ 23 апреля 2020

Вы не можете использовать «это» в этой области.

Просто используйте:

onClick="category_manage('{{$category->id}}','{{$category}}')}}"  

Должно работать правильно.

0 голосов
/ 23 апреля 2020

Определенно. Использование:

    <button type="button"
        id="{{ $category->id }}"
        class="btn btn-info"
        onClick="category_manage('{{ $category->id }}', '{{ json_encode($category) }}')">
        Update / Delete
    </button>

.....

    <script>
        function category_manage(id, payload) {
            console.log(id, JSON.parse(payload));
        }
    </script>
0 голосов
/ 23 апреля 2020

Это правильно передаст параметры вашей функции Javascript:

onClick="category_manage('{{$category->id}}','{{$category}}')}}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...