Javascript 在Laravel中,如何简单地将数据从js传递到控制器并返回到视图?
我基本上需要在blade视图中单击一个按钮来触发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
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 ,
]);
}