laravel 如何用 AJAX 传递命名路由参数

vtwuwzda  于 2023-04-07  发布在  其他
关注(0)|答案(9)|浏览(480)

我需要用ajax传递路由参数,但我在ajax代码中使用了命名路由方法。
我想去的路线路线

Route::post('/edit/{id}', 'ArticleController@updateArticle')->name('updateArticle');

** AJAX **

var id= $("input[name=editId]").val();
$.ajax({
   type:'POST',
   enctype: 'multipart/form-data',
   url:"{{ route('updateArticle',"id") }}",
   data: formdata,
   contentType: false,
   processData: false,
   success:function(data){
        $('.alert-success').html(data.success).fadeIn('slow');
        $('.alert-success').delay(3000).fadeOut('slow');
   }
});

我想在ajax URL中使用变量id

gblwokeq

gblwokeq1#

尝试使用替换功能:

var id = $("input[name=editId]").val();
var url = "{{ route('updateArticle', ":id") }}";
url = url.replace(':id', id);

$.ajax({
   type:'POST',
   enctype: 'multipart/form-data',
   url: url,
   data: formdata,
   contentType: false,
   processData: false,
   success:function(data){
        $('.alert-success').html(data.success).fadeIn('slow');
        $('.alert-success').delay(3000).fadeOut('slow');
   }
});
kr98yfug

kr98yfug2#

我也遇到了同样的问题,只是用这个改变你 AJAX 网址。

var id= $("input[name=editId]").val();
$.ajax({
   type:'POST',
   enctype: 'multipart/form-data',
   url:"{{ route('updateArticle') }}" + '/' + id,
   data: formdata,
   contentType: false,
   processData: false,
   success:function(data){
        $('.alert-success').html(data.success).fadeIn('slow');
        $('.alert-success').delay(3000).fadeOut('slow');
   }
});
nhjlsmyf

nhjlsmyf3#

+放在id变量周围,并确保通过formdata变量传递X-CSRF-Token,或者尝试发送manualy

替换此行:
联系我们_网站Map_隐私政策_网站Map
用这个:
联系我们_网站Map_隐私政策_网站Map

var id= $("input[name=editId]").val();
$.ajax({
   type:'POST',
   enctype: 'multipart/form-data',
   url:"{{ route('updateArticle',"+id+") }}",
   data: formdata,
   contentType: false,
   processData: false,
   success:function(data){
        $('.alert-success').html(data.success).fadeIn('slow');
        $('.alert-success').delay(3000).fadeOut('slow');
   }
});
to94eoyn

to94eoyn4#

Try this:
$(document).on("click", ".delete", function() { 
    var $ele = $(this).parent().parent();
    var id= $(this).val();
    var url = '{{ route("student.destroy_academic_qualifications", ":id") }}';
    url = url.replace(':id', id);
    $.ajax({
        url: url,
        type: "GET",
        cache: false,
        data:{
            _token:'{{ csrf_token() }}'
        },
        success: function(dataResult){
            var dataResult = JSON.parse(dataResult);
            if(dataResult.statusCode==200){
                $ele.fadeOut().remove();
            }
        }
    });
});
1cklez4t

1cklez4t5#

你可以这样做。
在你的刀锋档案里

<script>
window.your_route = "{{ route('updateArticle',['id'=>$id]) }}";
</script>

在JavaScript中,你可以使用创建的变量。

$.ajax({
   type:'POST',
   enctype: 'multipart/form-data',
   url:window.your_route,
   data: formdata,
   contentType: false,
   processData: false,
   success:function(data){
        $('.alert-success').html(data.success).fadeIn('slow');
        $('.alert-success').delay(3000).fadeOut('slow');
   }
});
c86crjj0

c86crjj06#

你可以像下面这样做,只需要硬编码URL和ID

var id= $("input[name=editId]").val();

$.ajax({
   type:'POST',
   enctype: 'multipart/form-data',
   url:"edit/1",
   data: formdata,
   contentType: false,
   processData: false,
   success:function(data){
        $('.alert-success').html(data.success).fadeIn('slow');
        $('.alert-success').delay(3000).fadeOut('slow');
   }
});
yzuktlbb

yzuktlbb7#

在形式上

<form id="form-create-role" action="{{route('role-create')}}" >

在文件role-create.js中

$(function(){
  
  $('#form-create-role').submit(function (event) { 
    event.preventDefault();
    $.ajax({
      type: "post",
      url: $(this).attr('action'),
      data: $(this).serialize(),
      dataType: "json",
      success: function (response) {
        
      }
    });
    
  });

});
djmepvbi

djmepvbi8#

我有两种方法

1.使用完整的url

$(document).on('click', '.view', function(){
    let contactId = $(this).attr('data-id');
    $.ajax({
        type: "GET",
        url: window.location.origin + "/view-contact-details/" + contactId,
        success: function (response) {
            console.log(response);
        }
    });
});

1.通过使用命名路径参数

$(document).on('click', '.view', function(){
    let contactId = $(this).attr('data-id');
    let url = "{{ route('view.contact', ['id' => ":contactId"]) }}";
    url = url.replace(":contactId", contactId);
    $.ajax({
        type: "GET",
        url: url,
        success: function (response) {
            console.log(response);
        }
    });
});

你可以使用其中的任何一个:)

wz8daaqr

wz8daaqr9#

"{{ route('teacher.guideline', '') }}"+"/"+data.teacher_id

这肯定会奏效的。

相关问题