Tengo estas filas:
cada fila está siendo generada por el complemento DataTable dentro app.js
mi objetivo es este valor particular, ${row.category_id}
let TABLE = $('#categoryList').DataTable({ { data: 'id', name: 'id', width: '10%', orderable: false, searchable: false, render: (data, type, row) =>{ let html = ""; if(row.category_name && row.category_name.toUpperCase() !== "GENERAL"){ html += `<ul class="list-inline no-margin">`; html += `<li class="list-inline-item"> <button type="button" value="${row.category_id}" class="edit_category btn btn-outline-secondary"><i class="fas fa-edit" aria-hidden="true"></i> Edit</button> </li>`; html += `</ul>`; } return html; } } }); ahora tengo este archivo blade, index.blade.php que está conectado a app.js usando:
<script src="{{asset('/modules/bbr-category-configuration/js/app.js')}}"></script>Lo que necesito resolver es la siguiente constante:
@section('scripts') <script type="text/javascript"> const SELECTED_CATEGORY_ID = 1; </script> @endsection por defecto está configurado como 1 , pero esto debe cambiarse cada vez que se hace clic en el botón 'Editar' (consulte la captura de pantalla). Una vez que se hace clic en el botón, necesito obtener ${row.category_id} y asignarlo a la const SELECTED_CATEGORY_ID . ¿Cuál es la forma correcta de hacer esto?
TLDR: ¿cómo paso un valor de .js a .blade.php ?
Lo que probé:
mi primer obstáculo es obtener el valor de ${row.category_id} al hacer clic, pero aquí es donde me quedé atascado
$(document).on('click', '.edit_category', function () { console.log(${row.category_id}); });No puedo console.log (para probar si obtuve la variable correcta) fuera de DataTable porque no se puede leer, o hacerlo dentro de las columnas porque no es la sintaxis correcta.
por favor siéntase libre de pedir cualquier aclaración.
En primer lugar, si los datos de su variable cambiarán durante el proceso, entonces no es const , debe declararse como let . Debe saber la diferencia entre var let y const .
Y puede usar atributos data-* en el botón de edición para que pueda obtener fácilmente el category_id cuando se hace clic en ese botón, por ejemplo:
<button type="button" data-category=`${row.category_id}`class="edit_category">Edit</button>Luego, en el evento de clic, puede obtener esos datos usando
$('.edit_category').click(function (e) { SELECTED_CATEGORY_ID = $(this).data('category'); });También puede obtener el atributo de valor del botón usando jquery. Pero en general, no uso eso. O no he visto mucho uso de eso también. Puedes probarlo así también
$('.edit_category').click(function (e) { SELECTED_CATEGORY_ID = $(this).value; });