我是一个建立一个简单的系统来允许/禁止在特定区域的权限,但我想知道什么是最好的方式来发送从jquery.ajax()
复选框的值来处理一个PHP函数并插入表中:如何根据复选框的值在表中存储多个权限?
不存在问题,只是我想知道一种方法来插入每个区域的每个复选框的值在表table_perfiles_permisos
没有为每个复选框和插入创建一个变量!一些动态使用foreach或其他东西。
HTML
<form>
<div id="permisosPerfiles">
<div id="leftPermisos">
<p>
<h4>Usuarios</h4>
<label for="pCrearUsuario">Crear</label>
<input id="pCrearUsuario" name="permUsuarios[]" value="CrearU" type="checkbox" />
<label for="pBuscarUsuario">Buscar</label>
<input id="pBuscarUsuario" name="permUsuarios[]" value="BuscarU" type="checkbox"/>
<label for="pModificarUsuario">Modificar</label>
<input id="pModificarUsuario" name="permUsuarios[]" value="ModificarU" type="checkbox"/>
<label for="pEliminarUsuario">Eliminar</label>
<input id="pEliminarUsuario" name="permUsuarios[]" value="EliminarU" type="checkbox"/>
</p>
<p>
<h4>Clientes</h4>
<label for="pCrearCliente">Crear</label>
<input id="pCrearCliente" name="permClientes[]" value="CrearC" type="checkbox"/>
<label for="pBuscarCliente">Buscar</label>
<input id="pBuscarCliente" name="permClientes[]" value="BuscarC" type="checkbox"/>
<label for="pModificarCliente">Modificar</label>
<input id="pModificarCliente" name="permClientes[]" value="ModificarC" type="checkbox"/>
<label for="pEliminarCliente">Eliminar</label>
<input id="pEliminarCliente" name="permClientes[]" value="EliminarC" type="checkbox"/>
</p>
<p>
<h4>Marca, Producto Subproducto</h4>
<label for="pCrearMPS">Crear</label>
<input id="pCrearMPS" name="permMPS[]" value="CrearMPS" type="checkbox"/>
<label for="pBuscarMPS">Buscar</label>
<input id="pBuscarMPS" name="permMPS[]" value="BuscarMPS" type="checkbox"/>
<label for="pModificarMPS">Modificar</label>
<input id="pModificarMPS" name="permMPS[]" value="ModificarMPS" type="checkbox"/>
<label for="pEliminarMPS">Eliminar</label>
<input id="pEliminarMPS" name="permMPS[]" value="EliminarMPS" type="checkbox"/>
</p>
</div>
<div id="rightPermisos">
<p>
<h4>Póliza</h4>
<label for="pCrearPoliza">Crear</label>
<input id="pCrearPoliza" name="permPoliza[]" value="CrearP" type="checkbox"/>
<label for="pBuscarPoliza">Buscar</label>
<input id="pBuscarPoliza" name="permPoliza[]" value="BuscarP" type="checkbox"/>
<label for="pModificarPoliza">Modificar</label>
<input id="pModificarPoliza" name="permPoliza[]" value="ModificarP" type="checkbox"/>
<label for="pEliminarPoliza">Eliminar</label>
<input id="pEliminarPoliza" name="permPoliza[]" value="EliminarP" type="checkbox"/>
</p>
<p>
<h4>Servicio</h4>
<label for="pCrearServicio">Crear</label>
<input id="pCrearServicio" name="permServicio[]" value="CrearS" type="checkbox"/>
<label for="pBuscarServicio">Buscar</label>
<input id="pBuscarServicio" name="permServicio[]" value="BuscarS" type="checkbox"/>
<label for="pModificarServicio">Modificar</label>
<input id="pModificarServicio" name="permServicio[]" value="ModificarS" type="checkbox"/>
<label for="pEliminarServicio">Eliminar</label>
<input id="pEliminarServicio" name="permServicio[]" value="EliminarS" type="checkbox"/>
</p>
</div>
</div>
</form>
的jQuery序列化形式
formchecks = $(形式).serialize();
$.ajax({
type : "POST",
url: "process.php",
data: formchecks,
success: function(response) {
if (response == "success") {
//actions if success
} else {
//actions if doesn't success
}
}
});
所以应当被存储的数据
table_perfiles
*id *nombre *descripcion
1 NameOne DescOne
2 NameTwo DescTwo
table_perfiles_permisos
*id_perfil *area_permiso *buscar *crear *eliminar *modificar
1 1 0 1 1 1
1 2 0 0 1 0
2 1 1 1 1 1
table_areas_permisos
*id *nombre
1 usuarios
2 clientes
3 mps
4 poliza
5 servicio
例如如果复选框被选中,则将每个区域中的每个复选框存储1个其他值为0
我希望我已经解释得够多了。
对不起,有什么问题呢?看起来你已经有了这种排序,究竟哪些不起作用? – DaveRandom 2012-08-06 22:04:17
不存在问题,只是我想知道一种方法来插入表中每个区域的每个复选框的值table_perfiles_permisos,而无需为每个checbox创建一个变量并插入!一些dinamyc使用foreach或其他东西! – SoldierCorp 2012-08-06 22:08:53
哦,我明白你的意思了。那么我会在HTML表单中创建1个大的2d数组,因此您只需迭代1个可以动态更改的变量。所以你可以把它改成像''那么你所要做的就是循环'$ _POST ['perm']',然后您可以循环每个子项目以获取每个区域的权限。我不知道我解释得很好...... – DaveRandom 2012-08-06 22:13:09