WEB (ruta) :
Route::get('/ajax-cat/edit/{id}', [App\Http\Controllers\AjaxCRUDController::class, 'categoryEdit'])->name('ajax.categoryEdit');Código AJAX:
$(document).ready(function () { $("#categoryBtn").click(function () { $("#catTable").show(); let html = ''; let i = 0; $.ajax({ url: '/ajax-cat', type: "GET", success: function (data) { for (const x of data) { html += `<tr> <th scope="row">${++i}</th> <td>${x.name}</td> <td><a href="{{route('ajax.categoryEdit',${x.id})}}" class="btn btn-danger">Edit</a></td> </tr>`; } $("#catTableBody").html(html); } }); }); });Imagen del navegador:
Pero quiero un enlace como este: 127.0.0.1:8000/ajax-cat/edit/2
No puede fusionar sintaxis de diferentes idiomas como este.
{{ }} es de la Directiva Blade. https://laravel.com/docs/8.x/blade
x.ides una variable definida en su bloque de código javascript.
Lo que puedes hacer es:
var url = '{{route("ajax.categoryEdit", ":id")}}'; url = url.replace(':id', x.id);Luego puede concatenar su variable javascript dentro de su código html.