Javascript 如何借助Laravel中的onclick功能,使用单个按钮添加和删除记录?
添加问题按钮Javascript 如何借助Laravel中的onclick功能,使用单个按钮添加和删除记录?,javascript,jquery,laravel,Javascript,Jquery,Laravel,添加问题按钮 如果我点击添加到考试按钮,该特定记录应添加到表中,该按钮应转换为删除到考试按钮,反之亦然。我已经在Laravel中尝试了所有替代方法,如何添加或删除记录?只需通过jQuery创建一个具有唯一行id的ajax请求 $.ajax({ url: `/module/${id}/delete` type: 'delete', success: function(data) { // remo
如果我点击添加到考试按钮,该特定记录应添加到表中,该按钮应转换为删除到考试按钮,反之亦然。我已经在Laravel中尝试了所有替代方法,如何添加或删除记录?只需通过jQuery创建一个具有唯一行id的ajax请求
$.ajax({
url: `/module/${id}/delete`
type: 'delete',
success: function(data) {
// remove selected table tr
},
error: function(data){
}
});
发送ajax后,通过从ajax传递的具有唯一id的查找删除行
Model::find($id)->delete();
return response()->json('Data removed successfully.', 200)
以2条路线为例:
Route::post('/add/{id}', 'Controller@addFunction');
Route::delete('/remove/{id}', 'Controller@deleteFunction');
然后在您的刀片文件中,以下是您的输入按钮(ID将正好是您的行ID):
此单击功能将处理结果中的调用和操作(按钮颜色和文本更改)。以下是纯JS代码,没有使用像jQuery这样的库:
函数单击函数(事件){
变量[
方法,行动,,
文字、颜色
]=(event.value==“添加到考试”)[
'POST',`/add/${event.id}`,
'从考试中删除','红色'
] : [
'DELETE',`/remove/${event.id}`,
“添加到考试”,“绿色”
];
取回(行动){
方法,,
标题:{
“内容类型”:“应用程序/json”,
“授权”:“持票人”
}
})
.然后(()=>{
event.value=文本;
event.style.backgroundColor=颜色;
返回true;
})
.捕获((e)=>警报(e));
}
编辑
更改您的路线(我只共享一条路线。对其他路线执行相同操作):
控制器:
public function addFunction(Request $req, $id, $question_id) {
DB::table('exam_questions')->insert([
'exam_id' => $id,
'question_id' => $question_id
]);
return back()->with('success_msg', 'Question Added Successfully')
}
并更新Javascript(在clickFunction
的开头):
函数单击函数(事件){
...
'POST',`/admin/tests/${exam_id}/add/${event.id}`,
'从考试中删除','红色'
] : [
'DELETE',`/admin/tests/${exam_id}/remove/${event.id}`,
“添加到考试”,“绿色”
];
//这个“考试id”应该在你的页面或表格行的某个地方。你可以使用一些逻辑从那里得到它
...
}
您能分享一下您的尝试吗?我只是通过创建一个新函数添加了一个插入查询,但在删除该函数之后,该函数没有执行。……嘿,阿比,欢迎使用SO。您必须使用javascript/jquery才能完成您想要的任务。此外,如果你能像你所做的那样展示你的工作,我们将能够帮助你。跟随这个链接可能是你想要的。Goodl UCKThank非常感谢,但我没有得到你的答案。我只想在onclick事件的帮助下使用相同的按钮添加和删除记录。你能不能给我一些参考资料,这样我就可以从中得到帮助,因为这些评论不是用来进行长期讨论的;此对话已结束。POST->/admin/exams/17/add/127 404(未找到)
此错误即将出现检查您的路由文件…admin/exams/addquestion?exam_id=21这是url,所以我需要在路由文件以及脚本中添加addquestion
?route::POST('/admin/exams/{id}/add/{question_id}“,”App\Http\Controllers\Admin\ExamsController@addFunction');代码>
public function addFunction(Request $req, $id, $question_id) {
DB::table('exam_questions')->insert([
'exam_id' => $id,
'question_id' => $question_id
]);
return back()->with('success_msg', 'Question Added Successfully')
}