ADOdb.
Ej: Consiste:
Tengo 2 tablas, un usuario pertenece a 1 o + grupo(s)
table: usuario; // datos de los usuario
usersysgroup, //id del usuario , id grupo
gruposys, // datos de los grupos existentes
1.-Visualizar un checkboxes con smarty, sacando informacion de la base de datos, es
2.-Enviar los checkbox checkeados(marcados), en un formulario
3.-Modificarlo tb en la bd
Código PHP:
//codigo en file_smarty.php
if(!isset($_REQUEST['btn_accept'])) // NO - Presiono el Boton Autualizar
{
//seleciona todos los grupos que existe
$sql='SELECT groupsys, name FROM groupsys'
$arraygroupsys = $db->GetAssoc($sql);
$smarty->assign('arraygroupsys',$arraygroupsys);
//$usersys = al ID del usuario
//Los grupo que tiene asignado el usuario
$sqlusergroup='SELECT usersys, groupsys
FROM usersysgroup
WHERE usersys IN ('".$usersys."')'
$arrayrolselected = $db->GetAll($sqlusergroup);
$numberGrupoSelected = sizeof($arrayrolselected);
// Nos sirve para visualizar en checkbox los grupos ya asignado al usuario
for($k=0 ; $k<$numberGrupoSelected ; $k++){
$vectorRolsSeleted[$k] = $arrayrolselected[$k][groupsys];
}
$smarty->assign('vectorRolsSeleted',$vectorRolsSeleted);
else
{
if(isset($_REQUEST['groupsys'])){
$arraygroupsys = $_REQUEST['groupsys']; //Contiene el checkbox(s) seleted
// Eliminar Grupos(s) Asignados
for($k=0 ; $k < $maxrolasignado; $k++){ // Rol Asignados
$query = "DELETE FROM usersysgroup WHERE usersys = '".$usersys."' AND groupsys = '".$groupsys."'";
$groupsys = $arrayrolselected[$k][groupsys];
//echo "Delete Rol".$groupsys."<br />";
$db->Execute($query);
}
//si es q marco (checkbox), podemos insertamos nuevos grupos asignados en nuestra tabla usersysgroup
for($k=0 ; $k < $maxselectcheck; $k++){ // Rol Asignados
$query = "INSERT INTO usersysgroup (usersys, groupsys) VALUES ('".$usersys."', '".$groupsys."')";
$groupsys = $arraygroupsys[$k];
//echo "Insert New Rol(s) Asignados".$groupsys."<br />";
$db->Execute($query);
}
}
}
Código:
// codigo del file.tpl <form id="formAsignacionRol" name="formAsignacionRol" onsubmit="return validarPassword();" method="post" action="{$paglink}"> {html_checkboxes name="groupsys" options=$arraygroupsys selected=$vectorRolsSeleted separator="<br />"} <input class="submitbutton" name="btn_accept" type="submit" id="btn_accept" value="Actualizar"/> </form>
Solo lo subo para ayudar.
Codigo q funciona bien.
Si es q alguien puede mejorar el codigo no hay problema.
Gracias