如何解决如何将 Laravel Ajax 响应数据绑定到路由链接中
我需要将响应数据 id
绑定到我的 <a href='{{route('')}}'> </a>
我从 Ajax 请求中获取数据,我需要通过其 id 编辑特定加载数据的函数
这就是我如何将数据显示在我的视图中
function fetchRecords(id){
$.ajax({
url: 'detailed-registrations/getCompetitionAjax/'+id,type: 'get',dataType: 'json',success: function(response){
var len = 0;
$('#userTable').empty(); // Empty <tbody>
if(response['data'] != null){
len = response['data'].length;
}
if(response['data'] != null){
var tr_str =
"<div class='primary-bg-color p-3 mb-3'>" +
"<div class='row pb-4'>" +
"<div class='col'>" +
"<div class='prime-color1'> Competition Details" +
"<div class='font-size-14 p'>" +
"<span style='text-transform: capitalize;'>" + response['data'].type + "</span>" +' | '+ response['location'].sport.name +
"</div>" +
"<div class='font-sec5 text-center text-md-left mb-2 pt-1'>"+
"<img src='{{asset('/images/sketches/1x/ic_map_pin_active.png')}}' alt='Location'>"+
" " + response['location'].location + ""+
"</div>"+
// "<li>" + response['data'].name + "</li>" +
// "<li>" + response['data'].type + "</li>" +
"<li>" + response['data'].id + "</li>" +
"</div>"+
"</div>"+
"<div><a href='{{ route('competitions.edit',$id) }}' class='button pnt button-outline mr-sm-3 mb-2 float-right'>Edit Details</a></div>"+
"</div>"
"</div>";
$("#userTable").append(tr_str);
}
当我得到响应时,我需要使用 id 而不是使用 $id,类似于下面的代码,但它不起作用。
"<div><a href='{{ route('competitions.edit',"+ response['data'].id +") }}'
我可以在 div 标签中打印 id,如下图所示
解决方法
您不能将值从 Javascript 传递到 PHP,或者在这种情况下是 Laravel Blade {{ }} 指令。因为它不会执行。它只会在页面加载时执行。
有两种方法可以做到这一点:
- 不要使用
{{ route() }}
,而是直接使用网址路径/competitions/id/edit
。例如在您的情况下:
"<div><a href='/competitions/"+response['data'].id+"/edit' "
- 或者,您可以在后端(例如您的控制器)生成路由链接,然后将路由链接发送到前端。
// generate the link
$route = route('competitions.edit',$id);
return $route; // include into your other data
并直接在您的 javascript 响应中使用它
"<div><a href='"+response['data'].route+"' "
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。