我想使用 AJAX 和 Laravel 5.2 框架更新数据库表列。我有一个按钮Delier
,当我点击该按钮时,它会更新从Not Shipped
到Shipped
的列。我还使用 sweetAlert 插件进行弹出式样设计。我搜索了很多。但我没有找到完美的程序。我试过这种方式:
路线:
Route::get('/winner/status/{id}', ['as' => 'winner.status', 'uses' => 'WinnerController@statusUpdate']);
WinnerController:
public function statusUpdate(Request $request, $id)
{
$winner = Winner::find($id);
$winner->product_stat = "Shipped";
$winner->save();
$request->session()->flash('alert-info', 'Product Status Updated!');
return Redirect::to('admin/winner/detail');
}
视图中的脚本:
$(".action-button").click(function(){
swal({
type : 'warning',
title: 'Submit what you want',
input: 'text',
showCancelButton: false,
confirmButtonText: 'Submit',
showLoaderOnConfirm: true,
allowOutsideClick: false
}).then(function (text) {
$.ajax({
type: "POST",
url : '',
success: function(data){
swal('Confirmed!','success')
}
});
})
});
刀片:
@foreach($dataQrDetails as $dataQr)
<tr>
<td> {{ $dataQr->product_name }} </td>
<td> {{ $dataQr->product_stat }} </td>
<td> {{ $dataQr->created_at }} </td>
<td> <a class="btn btn-info btn-xs action-button" href="{{route('winner.status',$dataQr->id)}}">Delier</a></td>
</tr>
@endforeach
刀片前端:
这是更新列,但更新后重定向另一个页面并显示弹出窗口,不需要提交弹出窗口的确认按钮。反正有没有这样做?请任何人都可以回答我的问题:
- 在Laravel中使用AJAX的最佳方法是什么。
- 更新数据的路由调用是什么?
- 我如何定义AJAX网址?
答案 0 :(得分:0)
许多JavaScript框架也使用&#34;卷曲&#34;用于表示给定表达式的大括号应显示在浏览器中
在laravel中传递ajax请求变量的最佳方法]
你的路线是
Route::get('testUrl/{id}', 'TestController@getAjax');
ajax请求
<script>
var Id = <?php echo $id; ?>
$(function(){
$('#button').click(function() {
$.ajax({
url: 'testUrl/{id}',
type: 'GET',
data: { id: Id },
success: function(response)
{
$('#something').html(response);
}
});
});
});
</script>
TestController.php
public function getAjax()
{
$id = $_GET['id'];
return $id // any value return as a response
}
答案 1 :(得分:0)
这里做的是,当您加载表单时,我会将用户ID保存在隐藏字段中,当我提交时也会将其传递给控制器
格式
<input type="hidden" name="id" value="{{ $id }}">
在AJAX中
$.ajax({
url: "/update-winner",
type:'POST',
data: {_token:_token, id:id, .....},
success: function(data) {
if($.isEmptyObject(data.error)){
swal('Confirmed!',data.success); # or swal('Confirmed!','success')
}else{
swal('error!',data.error); # or swal('error!','Errorrrrr')
}
}
});
路线
Route::post('update-winner','HomeController@statusUpdate');
在控制器中
function statusUpdate()
{
<!-- if need -->
$validator = Validator::make($request->all(), [
/....
]);
if ($validate->fails())
{
return response()->json(['error'=>$validator->errors()->all()]);
}
else
{
$id = $request->input("id");
$winner = Winner::find($id);
$winner->product_stat = "Shipped";
$winner->save();
return response()->json(['success'=>'Added new records.']);
}
}
修改01
在删除按钮中添加此data-delete="{{ id_fiedld_name}"
在Ajax中你可以抓住
var id = ($(this).data('delete'));