我已经创建了一个按钮来批准表中的一行,但是所有内容似乎只是检查并且没有更改mysql数据库布尔列
我的按钮
<td><button><a href="/getapprove"><span class="approva" name="appro">Approve</span></a></button></td>
这是我的脚本部分
@section('scripts')
<script type="text/javascript">
$(document).ready(function(){
$(".approva").click(function(e) {
e.preventDefault();
var id = $(this).closest('tr').attr('id');
$.ajax({
type:'POST',
url:'/getapprove',
headers: {'X-CSRF-TOKEN': '{{ csrf_token() }}' },
data: {"id":id},
success: function(data){
console.log('changed successfully')
}
});
});
});
</script>
@endsection
我的路线档案
Route::post('/getapprove','AdminalterdetailController@approve')->name('approved');
控制器功能: 'condition'是db
中的布尔列public function approve(Request $request){
$rpt = Fielddetails::findOrFail($request->id);
if ($rpt->condition == 1){
$rpt->condition = 0;
} else {
$rpt->condition = 1;
}
$rpt->save();
我怎样才能完成上述工作?
答案 0 :(得分:0)
我会这样做..
布尔列condition
必须是数据库表中的tinyInt
类型。
<强> Fielddetails.php 强>
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'condition' // <-- make sure you have added this in your model file
];
<强>路由/ web.php 强>
Route::get('/getapprove/{id}','AdminalterdetailController@approve')
->name('approved');
{id}
是您希望更新的表的ID。
<强>控制器强>
/**
* Approve the data of the given id.
*
* @param integer $id
* @return Your-Response-Or-Redirect
*/
public function approve($id, Request $request)
{
$rpt = Fielddetails::findOrFail($id);
if ($rpt->condition == true) {
$rpt->update(['condition' => false]);
}
if ($rpt->condition == false) {
$rpt->update(['condition' => true]);
}
// return your success response or redirect
}
<强>的jQuery 强>
<script type="text/javascript">
$('body').on('click', '.approva', function(e) {
e.preventDefault();
$.ajax({
type: 'GET',
url: $(this).attr('href'),
success: function(data) {
console.log(data);
},
error: function(err) {
console.log(err);
},
});
});
</script>
请注意,只要用户想要点击approva链接,我就会更改点击事件。
那是因为,我假设有多条记录,同一条链接有不同的id。
<强> table.blade.php 强>
<td>
<a href="{{ route('approved', $yourId) }}" class="button approva">
Approve
</a>
</td>
将$yourId
替换为您的实际记录ID。
要进行参考,您可以查看this question。它是关于使用AJAX删除记录,不像你的问题,但它肯定会帮助你。
快乐编码。干杯..