Javascript 获取多个复选框及其父输入字段的值
我想要一些建议或一个工作的情况下,我有。我正在构建一个访问管理系统,我必须为每个模块定义创建、读取、更新和删除权限。通过定义每个模块的权限,管理员将创建一个角色,稍后将分配给用户。我有大约14个模块,正如我前面提到的,每个模块有四个权限。我通过复选框获得每个权限的输入,因此我有几个复选框,其中父字段具有每个模块的Javascript 获取多个复选框及其父输入字段的值,javascript,html,json,laravel,logic,Javascript,Html,Json,Laravel,Logic,我想要一些建议或一个工作的情况下,我有。我正在构建一个访问管理系统,我必须为每个模块定义创建、读取、更新和删除权限。通过定义每个模块的权限,管理员将创建一个角色,稍后将分配给用户。我有大约14个模块,正如我前面提到的,每个模块有四个权限。我通过复选框获得每个权限的输入,因此我有几个复选框,其中父字段具有每个模块的id。下面是一些代码,可以更好地理解我想要实现的目标以及我的实现方法 HTML: <!-- Iteration loop starts here for rendering eac
id
。下面是一些代码,可以更好地理解我想要实现的目标以及我的实现方法
HTML:
<!-- Iteration loop starts here for rendering each module along with it's checkboxes -->
<tr>
<th scope="row">{{$mod->m_name}}</th>
<input type="hidden" name="module_id" value="{{$mod->m_id}}">
<td><input type="checkbox" name="p_read" value="1"></td>
<td><input type="checkbox" name="p_create" value="1"></td>
<td><input type="checkbox" name="p_update" value="1"></td>
<td><input type="checkbox" name="p_delete" value="1"></td>
</tr>
<!-- Loop ends here -->
var foo = $('#formAddRole').serializeArray();
var json = {"module" : []};
$.each(foo, (key, obj)=>{
var arr = {
"module_id" : 0,
"permissions" : {
"create" : 0,
"read" : 0,
"update" : 0,
"delete" : 0,
}
};
if(obj.name == "p_read"){
arr.permissions.read = 1;
json.module.push(arr);
}
// conditions for 'p_create', 'p_update', 'p_delete' goes here...
if(obj.name == "module_id"){
arr.module_id = obj.value;
json.module.push(arr);
}
});
{"modules" : [
{
"module_id" : 1,
"permissions" : {
"create" : 1,
"read" : 1,
"update" : 1,
"delete" : 0,
}
},
{
"module_id" : 2,
"permissions" : {
"create" : 0,
"read" : 1,
"update" : 1,
"delete" : 0,
}
},
// so on...
]}
我要发送到服务器的JSON结构:
<!-- Iteration loop starts here for rendering each module along with it's checkboxes -->
<tr>
<th scope="row">{{$mod->m_name}}</th>
<input type="hidden" name="module_id" value="{{$mod->m_id}}">
<td><input type="checkbox" name="p_read" value="1"></td>
<td><input type="checkbox" name="p_create" value="1"></td>
<td><input type="checkbox" name="p_update" value="1"></td>
<td><input type="checkbox" name="p_delete" value="1"></td>
</tr>
<!-- Loop ends here -->
var foo = $('#formAddRole').serializeArray();
var json = {"module" : []};
$.each(foo, (key, obj)=>{
var arr = {
"module_id" : 0,
"permissions" : {
"create" : 0,
"read" : 0,
"update" : 0,
"delete" : 0,
}
};
if(obj.name == "p_read"){
arr.permissions.read = 1;
json.module.push(arr);
}
// conditions for 'p_create', 'p_update', 'p_delete' goes here...
if(obj.name == "module_id"){
arr.module_id = obj.value;
json.module.push(arr);
}
});
{"modules" : [
{
"module_id" : 1,
"permissions" : {
"create" : 1,
"read" : 1,
"update" : 1,
"delete" : 0,
}
},
{
"module_id" : 2,
"permissions" : {
"create" : 0,
"read" : 1,
"update" : 1,
"delete" : 0,
}
},
// so on...
]}
我被困在这一点上了。我使用的逻辑对我来说并不完全有用。有什么更好的方法,我如何以最好的方式实现这一点?如有任何帮助或建议,将不胜感激。谢谢 如果您使用的是PHP,只需按照下面的代码重命名字段即可。不需要JavaScript
<tr>
<th scope="row">{{$mod->m_name}}</th>
<input type="hidden" name="modules[0][module_id]" value="{{$mod->m_id}}">
<td><input type="checkbox" name="modules[0][permissions][p_read]" value="1"></td>
<td><input type="checkbox" name="modules[0][permissions][p_create]" value="1"></td>
<td><input type="checkbox" name="modules[0][permissions][p_update]" value="1"></td>
<td><input type="checkbox" name="modules[0][permissions][p_delete]" value="1"></td>
</tr>
<tr>
<th scope="row">{{$mod->m_name}}</th>
<input type="hidden" name="modules[1][module_id]" value="{{$mod->m_id}}">
<td><input type="checkbox" name="modules[1][permissions][p_read]" value="1"></td>
<td><input type="checkbox" name="modules[1][permissions][p_create]" value="1"></td>
<td><input type="checkbox" name="modules[1][permissions][p_update]" value="1"></td>
<td><input type="checkbox" name="modules[1][permissions][p_delete]" value="1"></td>
</tr>
我正在使用laravel作为后端。但是我需要在通过ajax请求发送数据时使用js代码>。在PHP中阅读
$\u GET['modules']
。我不理解你的问题。你在寻找更好的方法做什么?发送。。。解析。。。?你到底需要什么?很抱歉这个格式不好且不清楚的问题,我想问的是,在我显示的json
输出中,获取和设置所有字段的数据的最佳方法是什么。你说得对,我可以将所有字段直接发送到php,让php处理所有的麻烦。为什么我没有想到这一点任何方式,请编辑您的答案,并包括您对社区的建议,以便我可以接受。