Javascript 在Laravel中,如何简单地将数据从js传递到控制器并返回到视图?

Javascript 在Laravel中,如何简单地将数据从js传递到控制器并返回到视图?,javascript,laravel,Javascript,Laravel,我基本上需要在blade视图中单击一个按钮来触发js文件中的一个函数,然后将一些值发送到控制器并返回到视图。使用下面的代码,我是否需要为此创建路由?谢谢 view: <div id="sendAsEmailTest">SEND AS EMAIL TEST</div> js: $('#sendAsEmailTest').on('click', function () { $.ajax({ headers: { 'X-CSRF

我基本上需要在blade视图中单击一个按钮来触发js文件中的一个函数,然后将一些值发送到控制器并返回到视图。使用下面的代码,我是否需要为此创建路由?谢谢

view:
<div id="sendAsEmailTest">SEND AS EMAIL TEST</div>


js:
$('#sendAsEmailTest').on('click', function () {
  $.ajax({
    headers: {
       'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
     },
    type: "POST",
    url: "FormController/TestFunction",
    data: { name: "John" }
  }).done(function( msg ) {
    // alert( "Data Saved: " + msg.name );
  });
});


FormController:
public function TestFunction(Request $request)
     {
       return view('calculator.calculator',
         [
         'testdata' => $request,
         ]
       );
     }
视图:
作为电子邮件发送测试
js:
$('#sendAsEmailTest')。在('单击',函数(){
$.ajax({
标题:{
'X-CSRF-TOKEN':$('meta[name=“CSRF-TOKEN”]).attr('content'))
},
类型:“POST”,
url:“FormController/TestFunction”,
数据:{name:“John”}
}).done(函数(msg){
//警报(“保存的数据:+msg.name”);
});
});
FormController:
公共函数TestFunction(请求$Request)
{
返回视图('calculator.calculator',
[
“testdata”=>$request,
]
);
}

您的路线应该是邮寄的

route::post('formController/testfunction'@'FormController@TestFunction')
只是

公共函数TestFunction(请求$Request)
{

dd($request->name)感谢@223ãlîj.的帮助。不得不稍微调整一下,但现在似乎工作正常:

js:
$('#sendAsEmailTest').on('click', function () {
  $.ajax({
    headers: {
       'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
     },
    type: "POST",
    url: "/formControllertestfunction",
    data: { name: "John" }
  }).done(function( msg ) {
    // alert( "Data Saved: " + msg.name );
  });
});

route:
Route::post('formControllertestfunction','FormController@TestFunction')->name('formControllertestfunction');

controller:
public function TestFunction(Request $request) {
         return view('calculator.back',
           [
             'displayName' => $request->name ,
           ]);
       }

基本解决方案,使用ajax..最佳解决方案使用Livewire
$('#sendAsEmailTest').on('click', function () {
  $.ajax({
    headers: {
       'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
     },
    type: "POST",
    url: "formController/testfunction",<------------------all letters in small
    data: { name: "John" }
  }).done(function( msg ) {
    // alert( "Data Saved: " + msg.name );
  });
});
js:
$('#sendAsEmailTest').on('click', function () {
  $.ajax({
    headers: {
       'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
     },
    type: "POST",
    url: "/formControllertestfunction",
    data: { name: "John" }
  }).done(function( msg ) {
    // alert( "Data Saved: " + msg.name );
  });
});

route:
Route::post('formControllertestfunction','FormController@TestFunction')->name('formControllertestfunction');

controller:
public function TestFunction(Request $request) {
         return view('calculator.back',
           [
             'displayName' => $request->name ,
           ]);
       }