我创建了一个按钮来批准表中的一行,但一切似乎都发生正确,只是检查并且 mysql 数据库 bool 列中没有更改
我的按钮
<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');
Controller 功能: “条件”是我在数据库中的 bool 列
public function approve(Request $request){
$rpt = Fielddetails::findOrFail($request->id);
if ($rpt->condition == 1){
$rpt->condition = 0;
} else {
$rpt->condition = 1;
}
$rpt->save();
如何才能使上述工作正常进行?
最佳答案
我会这样做..
数据库表中 bool 列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
];
routes/web.php
Route::get('/getapprove/{id}','AdminalterdetailController@approve')
->name('approved');
{id}
是您要更新的表的 ID。
Controller
/**
* 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>
请注意每当用户想要单击批准链接时我都会处理单击事件的更改。
这是因为,我假设会有多个记录具有不同的 id 的相同链接。
table.blade.php
<td>
<a href="{{ route('approved', $yourId) }}" class="button approva">
Approve
</a>
</td>
将 $yourId
替换为您的实际记录 ID。
引用,您可以查看this question 。这是关于使用 AJAX 删除记录,与您的问题不同,但它肯定会对您有所帮助。
快乐编码。干杯..
关于javascript - 如何使用 Jquery 和 ajax Laravel 5.4 切换数据库中的 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49290802/