Foros del Web » Programando para Internet » Jquery »

Cambiar <input type="checkbox" checked> por <input type="checkbox" check>

Estas en el tema de Cambiar <input type="checkbox" checked> por <input type="checkbox" check> en el foro de Jquery en Foros del Web. Quiero hacer una Web, donde se muestre 3 cambios de estado. Sobre los atributos Habitación, Living y Pieza. Con que lo debería hacer? websockets o ...
  #1 (permalink)  
Antiguo 17/08/2015, 19:28
 
Fecha de Ingreso: julio-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 2
Cambiar <input type="checkbox" checked> por <input type="checkbox" check>

Quiero hacer una Web, donde se muestre 3 cambios de estado. Sobre los atributos Habitación, Living y Pieza.

Con que lo debería hacer? websockets o jQuery? La idea es que sea "Realtime". Cambiar el <input type="checkbox" checked> por <input type="checkbox" check> en base a una consulta a la BBDD.

Una vez que, logre este estado. Debería hacer que refresque la pagina, cada x tiempo?

Agradezco, la ayuda que me puedas brindar! Este seria el botón y la etiqueta!



Este es el esquema de la BBDD MySQL

  #2 (permalink)  
Antiguo 18/08/2015, 00:47
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Cambiar <input type="checkbox" checked> por <input type="checkbox" check>

Para mostrar los cambios en tiempo real desde el servidor hacia una o más estaciones de trabajo, las websockets son lo que te conviene usar. Con jQuery, que es una librería de JavaScript, puedes manipular al DOM, realizar peticiones asíncronas, administrar estilos (CSS), entre otros.

Por otro lado, no existe el atributo check. Si lo que buscas es desmarcar al checkbox, debes de cambiar el valor del atributo checked a false:
Código Javascript:
Ver original
  1. elemento.checked = false;

Y si vas a usar websockets, ya no haría falta refrescar la página. Bastaría con que se produzca algún cambio en el lado del servidor que se vea reflejado en el lado del cliente mediante el uso de las websockets.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 18/08/2015, 06:54
 
Fecha de Ingreso: julio-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 2
Respuesta: Cambiar <input type="checkbox" checked> por <input type="checkbox" check>

Alexis88, gracias por la informacion.

No tengo experiencia en Web. Pero veo que manejas, la etiqueta, como un Objeto. Objeto.METODO.

No tendras, algun link o ejemplo para poder guiarme a desemarañar el tema?

Mil gracias por los consejos y ayuda!
  #4 (permalink)  
Antiguo 18/08/2015, 10:14
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Cambiar <input type="checkbox" checked> por <input type="checkbox" check>

Todos los elementos del DOM (Modelo de Objetos del Documento, o dicho de otra forma, los elementos del documento) posee atributos, tales como un identificador único (id), una clase (class), un nombre (name), entre otros. Puedes verlos aquí.

Asimismo, existen métodos para poder tomar a dichos elementos. Con jQuery, puedes hacer eso escribiendo menos código (aunque implique la carga de toda la librería).

Una vez que tomas al elemento en cuestión, puedes acceder a sus atributos para tomar o establecer un valor en él. Hay atributos que son de solo lectura como también los hay de lectura y escritura.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 18/08/2015, 18:19
 
Fecha de Ingreso: julio-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 2
Respuesta: Cambiar <input type="checkbox" checked> por <input type="checkbox" check>

Alexis88, muchas gracias por la ayuda que me estas brindando.

Te comento, que genere el JSON, lo llame json.php.



Al consultarlo...



Ahora tengo que pasear el JSON para poder hacer el if y así saber si lo pongo checked=true o false

Estoy leyendo sobre eso...La verdad, que me esta costando. Esto muy lejos?

La idea es que en base al campo estados de la base de datos, pueda cambiar el valor del botón. Creo que no estoy lejos...Tener alguna dato para orientarme?

Muchas gracias!

  #6 (permalink)  
Antiguo 18/08/2015, 23:20
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Cambiar <input type="checkbox" checked> por <input type="checkbox" check>

No veo ninguna imagen. Mejor coloca el código utilizando los highlights respectivos.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 19/08/2015, 14:09
 
Fecha de Ingreso: julio-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 2
Respuesta: Cambiar <input type="checkbox" checked> por <input type="checkbox" check>

Cita:
Iniciado por Alexis88 Ver Mensaje
No veo ninguna imagen. Mejor coloca el código utilizando los highlights respectivos.
Gracias Alexis, por la predisposicion. Por suerte, llegue a buen puerto! Voy a poner el codigo, por si algun compañero esta en la misma problematica!

1. JSON hecho en PHP -> json.php (Hare referencia en el jQuery)

Código PHP:
Ver original
  1. <?php
  2.    
  3.   $server = XXX;
  4.   $user = XXX;
  5.   $pass = XXX;
  6.   $bd = XXXX;
  7.    
  8.   //Creamos la conexión
  9.   $conexion = mysqli_connect($server, $user, $pass,$bd)
  10.   or die("Ha sucedido un error inexperado en la conexion de la base de datos");
  11.    
  12.   //generamos la consulta
  13.   $sql = "SELECT * FROM estados";
  14.   mysqli_set_charset($conexion, "utf8"); //formato de datos utf8
  15.    
  16.   if(!$result = mysqli_query($conexion, $sql)) die();
  17.    
  18.   $clientes = array(); //creamos un array
  19.    
  20.   while($row = mysqli_fetch_array($result))
  21.   {
  22.       $id=$row['id'];
  23.       $espacio=$row['espacio'];
  24.       $estado=$row['estado'];
  25.  
  26.       $estados[] = array('id'=> $id, 'espacio'=> $espacio, 'estado'=> ($estado == 1) );
  27.    
  28.   }
  29.      
  30.   //desconectamos la base de datos
  31.   $close = mysqli_close($conexion)
  32.   or die("Ha sucedido un error inexperado en la desconexion de la base de datos");
  33.    
  34.  
  35.   // Enviamos los headers correctos header("content-type","aplication/json")  
  36.   //Creamos el JSON
  37.   $json_string = json_encode($estados);
  38.   echo $json_string;

La salida, sera recibida por el jQuery. El mismo pharseara el JSON para poder editar los TAG de los botones!

Código Javascript:
Ver original
  1. <script>
  2.             jQuery(function($) {
  3.             //Disparar funcion al hacer clic en el boton Ajax
  4.            
  5.             function actualizaBtn () {
  6.             //console.log("actualizando...")
  7.             //llamada ajax
  8.               $.ajax({
  9.                     timeout: 10000, //DeboChequearElParametro
  10.                     url: "json.php", //url de donde obtener los datos
  11.                     dataType: 'json', //tipo de datos retornados
  12.                     type: 'post' //enviar variables como post
  13.                 }).then(function(data){
  14.  
  15.                     //console.log("recibi", data);
  16.                     for(var i=0;i<data.length;i++)
  17.                     {
  18.  
  19.                         var espacio = data[i].espacio;
  20.                         var estado = data[i].estado;
  21.                         //console.log("#btn-" + espacio, estado);//DEBUGGING
  22.                         $("#btn-" + espacio)[0].checked = estado;
  23.                     }
  24.                 }).always(function(){
  25.                     setTimeout(actualizaBtn,3000);
  26.                 });
  27.             }
  28.             actualizaBtn();
  29.             });
  30.         </script>

Espero haber ayudado, como me han ayudado a mi! Mil gracias Alexis, por la preocupacion de mi tema!.

Saludos desde Argentina!

Etiquetas: checked, websockets
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:51.