El tema es así, tengo un listado de usuarios en donde puedo activar o inactivar su acceso a un sitio web cambiado su estado. Individualmente y por medio de un $.ajax logro cambiar su estado sin actualizar el sitio entero (para que se entienda, el usuario que tiene estado activo aparece con un iconito verde de "check". Si le hago clic a ese icono, automáticamente se convierte en un iconito rojo con una X. Obviamente, previa consulta de si desea o no modificar el registro).
Esto es hermoso ya que cambias el estado sin actualizar todo el sitio y demás.
Ahora bien, he colocado unos checkbox para poder hacer esto mismo pero de más de 1 usuario. Por medio de la siguiente linea de código he logrado obtener todos los ID seleccionados por los checkbox:
Código:
Espero que se entienda lo que consulto. Me pone de la "cucuza" porque he buscando en SanGoogle pero poco he encontrado =($('#btnAccessOnAll').click(function(){ var changeStatusAllUser = confirm("Confirma DESBLOQUEO de acceso?"); if(changeStatusAllUser){ var selectedItems = new Array(); $('#form_user_list input[type=checkbox]').each(function(){ if (this.checked) { selectedItems.push($(this).val()); } }); $("#ActionLoading").modal('show'); //Modal c/ msj de "actualizando" $.ajax({ type: "POST", data: selectedItems, //Recibo toooodos los ID's url: "../inc/querys.php?idusersaccess="+selectedItems, success:function (data) { if(data != '') { //La pregunta es ¿Qué pongo acá, para que cada usuario que se selecciono por los checkbox, cambíe su icono como corresponde? Osea, lo mismo que explique arriba cuando lo hago de a un usuario, pero ahora que cambie todos los iconos juntos. //Podría poner: //$('#userstatus').hide(); //Oculto el div que tiene el estado viejo //$('#userstatusnew').html(data).show(); // Muestro el div con el nuevo estado // //Pero esto solo cambia el icono del primer ID recibido, y los demás ID's cambian su estado (en la BD) pero no modifican el icono. //Obviamente, si actualizo la página todos los cambios se hicieorn correctamente, pero justamente lo que quiero es evitar actualizar el sitio. $("#ActionLoading").modal('hide'); //Oculto modal } else { alert('No se ha podido realizar la operación'); } } }); } }); });
Si es posible una ayudita grandioso, sino con un "espero logres hacerlo funcionar" me conformo
Abrazo grande y espero sus comentarios.
PD:
Por si necesitan el código del querys.php se los dejo acá abajo:
Código PHP:
if(isset($_REQUEST['idusersaccess']))
{
$selectedItems = explode(",",$_REQUEST['idusersaccess']);
foreach($selectedItems as $items)
{
//Actualizo el estado del usuario
mysql_query("UPDATE usuarios SET ustatus = '1' WHERE uid = '$items'");
//Busco el nuevo estado
$checkstatus = mysql_query("SELECT * FROM usuarios WHERE uid = '$items'");
$checkinfostatus = mysql_fetch_array($checkstatus);
$newstatus = $checkinfostatus['ustatus'];
//El "data" que regresa es este nuevo link:
echo '
<a data-id-a="'.$checkinfostatus['uid'].'" data-id-b="'.$checkinfostatus['ustatus'].'" class="btnaccess">
<i class="icon-full-access"></i>
</a>';
}
}