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')
}