Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/03/2016, 00:34
Adri82
 
Fecha de Ingreso: mayo-2011
Ubicación: Córdoba Capital
Mensajes: 15
Antigüedad: 13 años
Puntos: 1
Pregunta Editar registros según checkbox seleccionados con $.ajax

Buenas noches gente del Foro, hace tiempo que no me pasaba por aquí y lamentablemente vuelvo con una consulta

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:
$('#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');
								}
						}             
				});
		}
    });              
});
Espero que se entienda lo que consulto. Me pone de la "cucuza" porque he buscando en SanGoogle pero poco he encontrado =(

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>'
;
        }
    } 
Salu2! ^^