Foros del Web » Programando para Internet » Javascript »

Marcar un checkbox al teclear un texto

Estas en el tema de Marcar un checkbox al teclear un texto en el foro de Javascript en Foros del Web. Hola tengo una tabla que muestra datos atravez de una consulta.... la cual funciona bien en la parte de arriba tengo un input text y ...
  #1 (permalink)  
Antiguo 14/11/2012, 12:12
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Marcar un checkbox al teclear un texto

Hola tengo una tabla que muestra datos atravez de una consulta.... la cual funciona bien

en la parte de arriba tengo un input text y un boton buscar... lo que pretendo hacer y hasta el momento no he logrado es lo siguiente en mi tabla tengo un checkbox quiero que cuando se teclee en el input de arriba (para buscar) y el texto (id) coincida con un dato de mi tabla se marque el checkbox


tengo lo sig:
Código PHP:
<form id="form1" name="form1" method="get" >
Id:
                        <input type="text" name="id" />
           
                        <input type="submit" name="buscar2"  value="Buscar" />
                    </form>

<table border="0" >
  <thead>
    <tr>
      <td>Nombre</td>
      <td>Descripcion</td>
         <td>Aplica</td>
     

    </tr></thead>
  <?php do { ?>
    <tbody>
      <tr>
      
        <td ><?php echo $row [nombre']; ?></td>
        <td ><?php echo $row ['
descripcion']; ?></td>
        <td ><input name="aplica[]" value="<? echo $row ['
id];?>" type="checkbox" /></td>
        
  <?php } while ($row mysql_fetch_assoc($row)); ?>
  #2 (permalink)  
Antiguo 14/11/2012, 12:35
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 16 años, 2 meses
Puntos: 31
Respuesta: Marcar un checkbox al teclear un texto

Buenas tardes,

¿Y no puedes hacerlo mediante una comparacion simple con un if?
Algo como:
Código PHP:
<td ><input name="aplica[]" value="<? echo $row ['id'];?>" type="checkbox"  <?php if($row ['id']==$_GET['id']){echo 'checked="checked"';}?> /></td>
Saludos
__________________
Tomarse un tiempo para redactar correctamente la pregunta, utilizando los signos de puntuación adecuados, es ganar tiempo y calidad en la respuesta.
  #3 (permalink)  
Antiguo 14/11/2012, 12:41
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Marcar un checkbox al teclear un texto

Cita:
Iniciado por Javier01 Ver Mensaje
Buenas tardes,

¿Y no puedes hacerlo mediante una comparacion simple con un if?
Algo como:
Código PHP:
<td ><input name="aplica[]" value="<? echo $row ['id'];?>" type="checkbox"  <?php if($row ['id']==$_GET['id']){echo 'checked="checked"';}?> /></td>
Saludos
Gracias por tu respuesta pero no se tiene q teclear y marcar automatico
  #4 (permalink)  
Antiguo 14/11/2012, 13:03
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 16 años, 2 meses
Puntos: 31
Respuesta: Marcar un checkbox al teclear un texto

Ok entonces lo precisas antes de hacer el submit?
si es asi, es con javascript.

prueba haciendo una llamada a una funcion cada vez que se ingrese un dato en el textbox
y a los check, poniendole un id


Código HTML:
Ver original
  1. <input type="text" name="id" id="id" Onkeyup="buscar(this.value);"/><input type="submit" name="buscar2"  value="Buscar" />
  2. ...
  3. ...
  4. <input name="aplica[]" id="check<? echo $row ['id];?>" value="<? echo $row ['id];?>" type="checkbox" />

Y por ultimo un javascript que tilde el check cuando se ingrese el mismo id

Código Javascript:
Ver original
  1. <script language="javascript">
  2.     function buscar(valor){
  3.         var check = document.getElementById('check'+valor);
  4.         if(check!='null'){check.checked=true;}
  5.     }
  6. </script>
__________________
Tomarse un tiempo para redactar correctamente la pregunta, utilizando los signos de puntuación adecuados, es ganar tiempo y calidad en la respuesta.
  #5 (permalink)  
Antiguo 14/11/2012, 13:05
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Marcar un checkbox al teclear un texto

Excelente la respuesta de Javier!

marcando errores en rojo! :D

<?php do { ?>
<tbody>
<tr>

<td ><?php echo $row ['nombre']; ?></td>
<td ><?php echo $row ['descripcion']; ?></td>
<td ><input name="aplica[]" value="<? echo $row ['id'];?>" type="checkbox" /></td>

<?php } while ($row = mysql_fetch_assoc($row)); ?>

Si quieres hacerlo despues de presionar el botón solo marcas las que coinciden con el input del form

Código PHP:
Ver original
  1. <input name="aplica[]" value="<? echo $row ['id'];?>" type="checkbox" <?php if($row ['id'] == $_GET['id']) echo "checked='checked' "; ?> />
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #6 (permalink)  
Antiguo 14/11/2012, 14:11
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Marcar un checkbox al teclear un texto

Cita:
Iniciado por Javier01 Ver Mensaje
Ok entonces lo precisas antes de hacer el submit?
si es asi, es con javascript.

prueba haciendo una llamada a una funcion cada vez que se ingrese un dato en el textbox
y a los check, poniendole un id


Código HTML:
Ver original
  1. <input type="text" name="id" id="id" Onkeyup="buscar(this.value);"/><input type="submit" name="buscar2"  value="Buscar" />
  2. ...
  3. ...
  4. <input name="aplica[]" id="check<? echo $row ['id];?>" value="<? echo $row ['id];?>" type="checkbox" />

Y por ultimo un javascript que tilde el check cuando se ingrese el mismo id

Código Javascript:
Ver original
  1. <script language="javascript">
  2.     function buscar(valor){
  3.         var check = document.getElementById('check'+valor);
  4.         if(check!='null'){check.checked=true;}
  5.     }
  6. </script>
Gracias por sus respuesta he cambiado esto y he agregado lo que indica stramin para que sea despues de dar click ...
Pero al hacer la busqueda mi tabla pierde la informacion y en la parte de arriba de la dirrecion hace esto ../prueba/a1.php?=1&buscar2=Buscar
  #7 (permalink)  
Antiguo 14/11/2012, 14:26
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Marcar un checkbox al teclear un texto

Pensaba que ese era tu objetivo, si no quieres que se vea en la URL debes cambiar esto:

<form id="form1" name="form1" method="post" >

y esto:

<input name="aplica[]" value="<? echo $row ['id'];?>" type="checkbox" <?php if($row ['id'] == $_POST['id']) echo "checked='checked' "; ?> />

para no perder los resultados de la búsqueda necesitamos que nos des el código que usas para hacer la consulta a la BD, si puedes publicar todo el código mejor.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #8 (permalink)  
Antiguo 14/11/2012, 16:26
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Marcar un checkbox al teclear un texto

Gracias funciona ahora bien... solo un ultimo detalle como hago por ejemplo si tengo en mi tabla 3 registros por ejemplo
1A ...
2A....
3A....

si teclee 1A se marca mi checkbox correspondiente

ESTA BIEN...

pero si vuelvo a teclear ahora 2A... como hago para no perder mi checkbox (1A primero en teclear)
y marcar 2A

Osea que acepte marcar uno nuevo al buscarlo sin perder las busquedas anteriores (check marcados)
  #9 (permalink)  
Antiguo 15/11/2012, 06:15
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Marcar un checkbox al teclear un texto

En ese caso quizás convendría hacerlo al modo de Javier, o sea full Javascript.

Te hago una referencia que debería funcionar, pero si no funciona te pido que publiques el código tal como lo llevas para no confundirnos, primero agregas una id única a cada checkbox para diferenciarlo y también una clase común para manipularlos todos:

<input name="aplica[]" value="<? echo $row ['id'];?>" type="checkbox" <?php if($row ['id'] == $_POST['id']) echo "checked='checked' "; ?> id="check<? echo $row ['id'];?>" class="check" />

y una id para el input de texto:

<input type="text" name="id" id="id" />

luego el botón de envío lo cambiaremos por un botón simple:

(Version Javascript)
Cita:
<script>
function marcar(){
//El Try es para evitar caidas si el elemento no existe
try{
document.getElementById('check' + document.getElementById('id').value).checked=true;
}catch(e){
}
}
</script>

<input type="button" name="buscar2" value="Buscar" onclick="marcar();" />
(Version JQuery (siempre más corta))

Cita:
<input type="button" name="buscar2" value="Buscar" onclick="$('#check' + $('#id').val()).attr("checked","checked");" />
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #10 (permalink)  
Antiguo 15/11/2012, 10:45
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Marcar un checkbox al teclear un texto

Gracias funciona Bien ahora se conserva el check
pero abusando de tu gentileza podrías ayudarme con lo siguiente...
en el código anterior al teclear 1A se marcaba el check pero también el input id se borraba el texto...
ahora tecleo 1A se marca pero el texto se queda ahi tengo que borrarlo para ingresar ahora 2A (se puede hacer que funcione como antes que al teclear un texto se busque y se "limpie" el input )
  #11 (permalink)  
Antiguo 15/11/2012, 17:19
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Marcar un checkbox al teclear un texto

Bien ya no es problema lo de borrar el texto
Porque ahora lo estoy trabajando con un lector de codigo de barras y borra y da enter automaticamente...
pero pasa lo del inicio se pierde la marca del check



Alguna ayuda Gracias de antemano
  #12 (permalink)  
Antiguo 16/11/2012, 09:32
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Marcar un checkbox al teclear un texto

He estado leyendo que algunos lectores de codigo de barras dan el enter automatico... y en mi caso esta opcion esta bien lo que no entiendo es porque no conserva mi primer check marcado antes-.....
  #13 (permalink)  
Antiguo 16/11/2012, 09:52
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Marcar un checkbox al teclear un texto

Creo que el problema es que al ingresar el dato con el lector al dar enter tambien se actualiza la pagina por eso se pierde el chechk marcado... alguien sabe como evitar esto????

Etiquetas: checkbox, marcar, mysql, tabla
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 19:24.