Java - Checkbox marcados por Base de Datos o Javascript

 
Vista:
sin imagen de perfil

Checkbox marcados por Base de Datos o Javascript

Publicado por Wasp (15 intervenciones) el 16/02/2016 11:21:03
Buenas tardes a todos/as.

Tengo una pequeña duda sobre una parte de mi aplicación web.

Necesito mostrar un determinado numero de productos mediante checkbox. Hasta ahí todo bien.
Mi problema es, por ejemplo, tengo 30 productos, y cuando un usuario visualiza algo, solo quiero que de esos 30 productos queden marcados y sin que se puedan desmarcar 7 por ejemplo, y los demás sigan estando desmarcados.

El 7 no sale de la nada, es de una consulta a la base de datos, que me da que esos 7.

¿Como podría tocar mi código para conseguirlo?

Mis checkbox los creo asi:

<input type=checkbox name=parametros id=parametros_"+tablaValores[0] value=+tablaValores[0]+>

Quedando de estar manera: parametros_001, parametros_002 y asi sucesivamente.

TablaValores será un array donde tengo mis 30 productos y estos se sacan por iteracion.

Me gustaría poder tener ya marcados algunos ( cuando entro en esta pagina web, en concreto es un Servlet) y la verdad que no se como hacerlos.

¿Si es por javascript alguien me dice que forma podría resolverlo?

Si necesitáis mas información o partes de código, las pongo rápidamente.

Muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Checkbox marcados por Base de Datos o Javascript

Publicado por arck (145 intervenciones) el 17/02/2016 16:04:32
Si puedes poner la lista de los check-box seria de agradecer.
Y si especificas como los cargas de base de datos seria genial.
Yo se marcarlos pero no se si en el check-box tienes la opción de disabled como en los select, aunque se puede hacer una chapucilla metiéndole una función trampa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Checkbox marcados por Base de Datos o Javascript

Publicado por Wasp (15 intervenciones) el 18/02/2016 08:36:17
ArrayList<String[]> tablaCodigo = JDBC.Parametros(); // aqui me da un array de los parametros de mis productos.
Iterator<String[]> recorrerIterador = tablaCodigo.iterator();
while(recorrerIterador.haNext()){
String tablaValoresTotales[] = new String[2];
String tablaBD[] = new String[2];
tablaValoresTotales = recorrerIterador.next();
try{
<form action="+"ServletAgregacionSubNaturalezaParametros"+" method="+"post"+" name="+"grupoDeParametros"+">";

<table align="+"center"+" border="+"2"+">
<tbody>
<tr>
<td>
<input type="+"checkbox"+" name="+"parametros" + " id="+"parametros_"+tablaValoresTodos[0]+" value="+tablaValoresTodos[0]+">
</td>
</tr>
</tbody>
</table>
</form>

ahi esta mi formulario donde iran los check por iteracion y a su vez de donde se sacan de la base de datos.
Con el metodo obtenerParametros, hago consultas SQL a la base de datos y me los va dando y los voy metiendo en el arrayList.

Mi idea seria: tengo dos listas.
En la primera lista donde obtengo todos los parametros de mis productos.
Una segunda lista dnde esten los parametros que quiero.
E ir con el metodo contains de los ArrayList obtener si existen en uno de ellos.
Pero aun asi no llego a hacerlo.

Lo que quiero es tener algunos marcados y otros no.

Los tipo checkbox tambien se pueden deshabilitar, seria asi: checked=true disabled.
Asi lo marcas y lo deshabilitas para que ningun usuario pueda meter la mano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Checkbox marcados por Base de Datos o Javascript

Publicado por arck (145 intervenciones) el 18/02/2016 10:04:24
¿Te importa meter JQuery?

Esta explicación como que no acabo de entenderlo bien, intentare ayudar a ver si te sirve lo que yo entiendo.
-----------------------------------------------------------------------------------------------
Mi idea seria: tengo dos listas.
En la primera lista donde obtengo todos los parametros de mis productos.
Una segunda lista dnde esten los parametros que quiero.
E ir con el metodo contains de los ArrayList obtener si existen en uno de ellos.
Pero aun asi no llego a hacerlo.
-----------------------------------------------------------------------------------------------
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Checkbox marcados por Base de Datos o Javascript

Publicado por arck (145 intervenciones) el 18/02/2016 11:11:39
A ver si te da una idea esto.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
    function filtrar(){
      var parametros = $("input[name='parametros']");
 
      for (var i=0; i<parametros.length; i++) {
          if(parametros[i].checked){
              $('#opciones_'+i).attr('checked', true);
              $('#opciones_'+i).attr("disabled", true);
          }else{
              $('#opciones_'+i).removeAttr('checked');
              $('#opciones_'+i).removeAttr('disabled');
          }
      }
 
    }
</script>
 
<input type="checkbox" name="parametros" id="parametros_0" value="parametros_0">parametros_0</br>
<input type="checkbox" name="parametros" id="parametros_1" value="parametros_1">parametros_1</br>
<input type="checkbox" name="parametros" id="parametros_2" value="parametros_2">parametros_2</br>
<input type="checkbox" name="parametros" id="parametros_3" value="parametros_3">parametros_3</br>
<input type="checkbox" name="parametros" id="parametros_4" value="parametros_4">parametros_4</br>
<input type="checkbox" name="parametros" id="parametros_5" value="parametros_5">parametros_5</br></br></br>
 
 
<button id="actualizar" onclick="filtrar();">Filtrar</button></br></br></br></br>
 
 
 
<input type="checkbox" name="opciones" id="opciones_0" value="opciones_0">opciones_0</br>
<input type="checkbox" name="opciones" id="opciones_1" value="opciones_1">opciones_1</br>
<input type="checkbox" name="opciones" id="opciones_2" value="opciones_2">opciones_2</br>
<input type="checkbox" name="opciones" id="opciones_3" value="opciones_3">opciones_3</br>
<input type="checkbox" name="opciones" id="opciones_4" value="opciones_4">opciones_4</br>
<input type="checkbox" name="opciones" id="opciones_5" value="opciones_5">opciones_5</br>

Esto es mas o menos lo que deberías hacer con la parte cliente, el acceso a los datos para saber cuales tiene que estar marcadas y cuales no recomendaría hacerla con ajax.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Checkbox marcados por Base de Datos o Javascript

Publicado por Wasp (15 intervenciones) el 18/02/2016 11:31:23
No entiendo de jquery pero puedo intender la idea que me has trasmitido y hacerlo en javascript.

Intentaré explicarme mejor.

En mi base de datos tengo 40 parámetros ( y los quiero mostrar todos para que el usuario modifique(aunque esto seria otro paso) ) por defecto de muchos productos diferentes.

Por ejemplo, si mi producto es: manzana, pera, limon...tendré de parametros: tamaño, peso, color, calidad, ...etc.
El problema es que no siempre esos parametros son los mismo para todos. Algunos coinciden para todos y otro no.

Entonces mi idea seria tener 2 listas. Una de ellas (list1) seria tener todos los parámetros posibles.
Esto lo saco con un SELECT a mi base de datos.
Otra lista (lista2) seria dado un producto que el usuairo ha elegido, sacar los parametros que tiene para ese producto.
En ambas listas, puedo obtener con SELECT a la base de datos los parametros que las contienen.

Si lista1.contains(lista2) entonces ESE es el que checked y lo deshabilito, y si no lo contiene, pues lo pongo un checkbox normal.

Espero haberme explicado algo mejor.

Muchas gracias por contestar y mandarme tu idea!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Checkbox marcados por Base de Datos o Javascript

Publicado por arck (145 intervenciones) el 18/02/2016 12:20:45
Vale
te ofrezco una solucion.
entiendo que de la primera lista solo puedes elegir uno cada vez.
por lo que recomiendo que el primero sea un select.

Despues la carga de la segunda lista que sea por ajax, ¿Lo has hecho alguna vez?, con los datos de vuelta generas las lista 2, asi no tienes ningun parametro en la lista 2 que no sea de ese producto seleccionado de la lista 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Checkbox marcados por Base de Datos o Javascript

Publicado por Wasp (15 intervenciones) el 18/02/2016 13:18:59
Pues la verdad es que no, o quizás lo he usado pero no he entendido el modo de usarlo.
Se que es ajax pero no lo he usado como concepto en mi web.

He estado ahí picando y ya casi que lo he solucionado, no esta optimo pero, bastante mas aceptable, te cuento.

Por un lado me he creado unas clases con dos métodos estáticos.
1 método es para la lista de todos los parámetros.
1 método es para la lista de los parámetros dado un producto.

con un for tal que asi:
1
2
3
for(int contador = 0; contador <= listaTotalesAuxiliar.size(); contador++){
	logico = listaTotalesAuxiliar.contains(listaBDAuxiliar.get(contador));
	System.out.println("¿Que devuelve? --> " +logico);

----> lo siguiente es ir pintándolo.

Ahora mismo me lo pinta lo que quiero, es decir, los parámetros de la lista 2, están checkeados y deshabilitados.
Ya solo me quedaría depurar el código para que también imprimiera los que no están en la lista 1, y por tanto, mostrarlos sin marcar.

Me ha servido bastante tus ideas para organizar mejor los conceptos.
Si lo termino, lo pondré por aquí.

De todas formas, lo de ajax no se si lo uso o no la verdad, no tengo ese concepto muy arraigado o no lo entiendo.

Gracias!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Checkbox marcados por Base de Datos o Javascript

Publicado por arck (145 intervenciones) el 18/02/2016 15:53:16
ajax es un método de enviar información entre servidor- cliente sin tener que cambiar de contexto.

imaginate que tu para cargar la segunda lista tienes que cargar la pagina entera de nuevo.

Si usas ajax, llamas a una función del servidor y con la vuelta haces lo que quieras.

https://www.imaginanet.com/blog/usando-ajax-un-simple-ejemplo-con-php-y-jquery.html

el ejemplo es en php pero con java es parecidísimo. Con esto podrías montarla los checks de la lista 2 de la forma que tu quieres.
ejemplo, por ajax devuelves 2 listas la de las características del objeto seleccionado en la lista 1 y otra lista con todas las características que existan, generas los checkbox con la 2 lista enviada y los deshabilitas con los valores de la primera.

Me temo que te lo estoy complicando demasiado. Y esta semana no creo que pueda ayudarte mucho mas.

Espero que lo consigas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Checkbox marcados por Base de Datos o Javascript

Publicado por Wasp (15 intervenciones) el 19/02/2016 08:05:49
Buenas!

Para nada, al revés, estoy contemplando y leyendo todo lo que me has pasado para empezar a aplicarlo a mi web.
Al final todo el código lo hacia todo junto y haciendo muchas paginas jsp y demás y de esta manera quizás me quite mucha morralla.

Muchísimas gracias por tu interés y tu información!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar