Php 在Laravel中更新用户属性,通过按刀片视图上的按钮调用控制器上的函数,但不刷新页面
我有一个blade Laravel视图,在那里我有一个按钮,点击它我想更新一些用户属性。我在控制器中实现了一个方法,将值传递给该方法要在用户上报告和保存,但我不想更新页面或更改URL。正确的方法是什么 多谢各位 web.phpPhp 在Laravel中更新用户属性,通过按刀片视图上的按钮调用控制器上的函数,但不刷新页面,php,laravel,laravel-blade,Php,Laravel,Laravel Blade,我有一个blade Laravel视图,在那里我有一个按钮,点击它我想更新一些用户属性。我在控制器中实现了一个方法,将值传递给该方法要在用户上报告和保存,但我不想更新页面或更改URL。正确的方法是什么 多谢各位 web.php Route::post('/updateUserPreference/{plan_compact_view}', [NutritionalPlanController::class, 'up dateUserPreference'])->name('update
Route::post('/updateUserPreference/{plan_compact_view}', [NutritionalPlanController::class, 'up
dateUserPreference'])->name('updateUserPreference');
刀片视图
@push('scripts')
<script type="text/javascript">
$(document).ready(function () {
$('#btn_view_type').click(function (e) {
//AJAX Call update user preference
$.ajax({
url: 'updateUserPreference',
method: 'post',
dataType: 'JSON',
success: function () {
console.log("done");
},error: function(xhr, ajaxOptions, thrownError){
console.log("error");
}
});
});
});
</script>
@endpush
现在控制台中的错误消息是:“200,parsererror,SyntaxError:JSON输入的意外结束”需要更改ajax代码片段中的url以匹配routes文件中定义的url 您还需要获取route参数
plan\u compact\u view
的值,并将其附加到js代码段中的url中
@push('scripts')
<script type="text/javascript">
const planCompactView = 'get the value';
$(document).ready(function () {
$('#btn_view_type').click(function (e) {
//AJAX Call update user preference
$.ajax({
url: `/updateUserPreference/${planCompactView}`,
method: 'post',
dataType: 'JSON',
success: function () {
console.log("done");
},error: function(xhr, ajaxOptions, thrownError){
console.log("error");
}
});
});
});
</script>
@endpush
@push('scripts')
const planCompactView='获取值';
$(文档).ready(函数(){
$(“#btn_视图_类型”)。单击(函数(e){
//AJAX调用更新用户首选项
$.ajax({
url:`/updateUserPreference/${planCompactView}`,
方法:“post”,
数据类型:“JSON”,
成功:函数(){
控制台日志(“完成”);
},错误:函数(xhr、ajaxOptions、thrownError){
控制台日志(“错误”);
}
});
});
});
@端推
按下按钮时,需要进行ajax调用clicked@Donkarnash非常感谢。我在使用ajax调用的控制台中遇到了这个错误:“加载资源失败:服务器响应状态为405(不允许使用方法)”请发布路由文件的代码,使用ajax调用和控制器的代码。如果不看一眼数据,就很难猜测是什么导致了错误code@DonkarnashDonewhitout头我有错误419比我添加了这个。但现在的错误是:“200,parsererror,SyntaxError:JSON输入的意外结束”,如请求的“更新2”中所报告的。请尝试使用非空对象获取数据:{foo:'bar},然后查看错误是否更改为One。我有同样的错误,把e.preventDefault()作为第一行包含在.click()中,只是为了确保正常提交不会发生。然后尝试删除数据类型:“JSON”,看看错误是否发生了变化。删除数据类型:JSON它可以工作!非常感谢。
@push('scripts')
<script type="text/javascript">
const planCompactView = 'get the value';
$(document).ready(function () {
$('#btn_view_type').click(function (e) {
//AJAX Call update user preference
$.ajax({
url: `/updateUserPreference/${planCompactView}`,
method: 'post',
dataType: 'JSON',
success: function () {
console.log("done");
},error: function(xhr, ajaxOptions, thrownError){
console.log("error");
}
});
});
});
</script>
@endpush