Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problema checkbox AngularJS

Estas en el tema de Problema checkbox AngularJS en el foro de Frameworks JS en Foros del Web. Hola a todos, Me ha surgido un problema un poco extraño, y no sé por donde irán los tiros... Lo intento explicar... Tengo una página ...
  #1 (permalink)  
Antiguo 15/09/2017, 05:16
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 3 años, 6 meses
Puntos: 0
Problema checkbox AngularJS

Hola a todos,
Me ha surgido un problema un poco extraño, y no sé por donde irán los tiros...
Lo intento explicar...

Tengo una página en angular que me devuelve un listado de resultados de ejemplares de libros. Los filtros de búsqueda funcionan bien, los resultados están paginados, todo sin problemas.
Estos resultados tienen a su izquierda un checkbox, para poder marcar varios a la vez y poder, por ejemplo, borrarlos.

Lo que pasa, y es lo raro, es que cuando marcas un par de ellos y cambias de página, los checkbox pasan a la siguiente página, cuando no deberían...

Voy a poner unas capturas para explicarme mejor:

- Tengo la página 1, con los resultados


- Marco el elemento primero y tercero (por ejemplo)


- Cambio a la página 2, y las posiciones se mantienen


La página está montada con symfony, toma los datos de una query en un "action" y se los pasa a angular en el template

¿Qué puede estar pasando?
  #2 (permalink)  
Antiguo 19/09/2017, 12:58
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 5.822
Antigüedad: 9 años, 9 meses
Puntos: 951
Respuesta: Problema checkbox AngularJS

Las capturas de pantalla no ayudan de mucho ya que no nos dice nada de que estas haciendo.

Deberás colocar el código necesario para recrear la situación y verlo en acción para saber que ocurrere.

Puedes usar servicios como http://jsfiddle.net/ para darnos un ejemplo funcional donde se pueda apreciar el problema que indicas.
__________________
Toda ayuda se proporciona exclusivamente en el foro, no skype, no mensajes privados u otro medio....
  #3 (permalink)  
Antiguo 19/09/2017, 19:32
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.696
Antigüedad: 8 años, 3 meses
Puntos: 194
Respuesta: Problema checkbox AngularJS

Saludo
¿Cómo son nombrados los ids o names de cada checkbox?

Por ej, del 1 al 10, y en la siguiente página igual?
O son un array?
O van con el id de cada libro?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #4 (permalink)  
Antiguo 21/09/2017, 01:24
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 3 años, 6 meses
Puntos: 0
Respuesta: Problema checkbox AngularJS

Cita:
Iniciado por ArturoGallegos Ver Mensaje
Las capturas de pantalla no ayudan de mucho ya que no nos dice nada de que estas haciendo.

Deberás colocar el código necesario para recrear la situación y verlo en acción para saber que ocurrere.

Puedes usar servicios como [url]http://jsfiddle.net/[/url] para darnos un ejemplo funcional donde se pueda apreciar el problema que indicas.
Lo que pretendía con las capturas era describir el problema.
No sé como meterlo ahí, ya que esto saca registros de una BBDD y no puedo hacer eso desde esa web
  #5 (permalink)  
Antiguo 21/09/2017, 01:30
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 3 años, 6 meses
Puntos: 0
Respuesta: Problema checkbox AngularJS

Cita:
Iniciado por mortiprogramador Ver Mensaje
Saludo
¿Cómo son nombrados los ids o names de cada checkbox?

Por ej, del 1 al 10, y en la siguiente página igual?
O son un array?
O van con el id de cada libro?
Hola,
Mira, te voy a poner un par de ejemplos:
El primer checkbox
Código:
<input type="checkbox" name="ids[]" value="335637" class="sf_admin_batch_checkbox">
El segundo
Código:
<input type="checkbox" name="ids[]" value="335638" class="sf_admin_batch_checkbox">
El primero de la segunda página
Código:
<input type="checkbox" name="ids[]" value="335679" class="sf_admin_batch_checkbox">
Value es un id interno que tienen en BBDD

(por cierto, ya he conseguido solucionar el otro tema, pero no me permite enviarte mensajes privados, no sé por que)

Última edición por juliana2812; 21/09/2017 a las 02:00
  #6 (permalink)  
Antiguo 21/09/2017, 02:09
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 3 años, 6 meses
Puntos: 0
Respuesta: Problema checkbox AngularJS

El código que estoy usando es el siguiente:

Código:
<tr ng-repeat="item in data| filter:Buscar | filtroNumregistro:numregistro | filtroCodEjemplar:codEjemplar | filtroNombreNormalizado:nombreFiltro  | orderBy:sort:reverse | limitTo: (currentPage - 1) * pageSize - filtrados.length | limitTo: pageSize track by $index">
            <td class="sf_admin_text sf_admin_list_td_nombre">
              <input type="checkbox" name="ids[]" value="{{ item.id }}" class="sf_admin_batch_checkbox">
            </td>
            <td class="sf_admin_text">
              {{ item.codigo }}
            </td>
            <td class="sf_admin_text">
              {{ item.numregistro }}
            </td>
            <td class="sf_admin_text sf_admin_list_td_titulo">
                <span><a ng-href="{{cambiarUrlTitulo(item.id)}}">{{ item.Titulo }}</a></span><br/>
                <span class="autorListEjemplar" ng-repeat="autor in item.Autor">{{autor}}{{$last ? '' : ' - '}}</span>
            </td>
            <td class="sf_admin_text" style="width:10%;">
              {{ item.ISBN }}
            </td>
            <td class="sf_admin_text" style="width:10%;">
              {{ item.Editorial }}
            </td>
            <td class="sf_admin_text" style="width:10%;">
              {{ item.Ubicacion }}
            </td>
            <td class="sf_admin_text" style="width:10%;">
              {{ item.signatura }}
            </td>
            <td class="sf_admin_text">
              {{ item.tipo }}
            </td>
          </tr>
He quitado un par de cosas, que calculan la disponibilidad, ponen de un color y otro, etc. Cosas que no deberían influir

Y esto toma datos de un action que tras pasar una query lo envía así:
Código:
$ejemplares = array();
    foreach($data as $ejemplar_bd)
    {
        $id_documento = $ejemplar_bd['id_registro'];
        
        $ejemplar = array();
        $ejemplar['id'] = $ejemplar_bd['id'];
        $ejemplar['idDoc'] = (int)$ejemplar_bd['id_registro'];
        $ejemplar['numregistro'] = (int)$ejemplar_bd['numregistro'];
        $ejemplar['codigo'] = $ejemplar_bd['codigoejemplar'];
        $ejemplar['estado'] = $ejemplar_bd['estado'];
        $ejemplar['signatura'] = $ejemplar_bd['signatura1']."-".$ejemplar_bd['signatura2']."-".$ejemplar_bd['signatura3'];
        $ejemplar['tipo'] =$ejemplar_bd['tipoejemplar'];
        $ejemplar['reservas']=$ejemplar_bd['reservas'];
        $ejemplar['Ubicacion']=$ubicaciones[$ejemplar_bd['id']];
        $ejemplar['Motivo']=$ejemplar_bd['motivo_expurgado'];
        $ejemplar['Editorial']=$data_editorial['valor'];
        $ejemplar['Imprimido']= $ejemplar_bd['imprimido'];
        $ejemplar = array_merge($ejemplar,$fondos[$id_documento][$ejemplar['id']]);
        
        $ejemplares[] = $ejemplar;

    }

    $this->json_data = json_encode($ejemplares);



La zona horaria es GMT -6. Ahora son las 11:22.