Foros del Web » Programando para Internet » PHP »

Consulta avanzada con casillas de verificacion

Estas en el tema de Consulta avanzada con casillas de verificacion en el foro de PHP en Foros del Web. David!! O alguien que lea el mensaje! jajajaj Siguiendo la linea del Post http://www.forosdelweb.com/f18/simpl...ion-if-628588/ ... Yo tengo un formulario donde verifico si los campos estan ...
  #1 (permalink)  
Antiguo 28/09/2008, 08:17
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 7 meses
Puntos: 1
Consulta avanzada con casillas de verificacion

David!! O alguien que lea el mensaje! jajajaj

Siguiendo la linea del Post http://www.forosdelweb.com/f18/simpl...ion-if-628588/...

Yo tengo un formulario donde verifico si los campos estan vacios o no.. si lo estan, no utilizo ese campo para "filtrar" la consulta.. sino, los agrego a la consulta...

ahora bien... lo que ahora me surgio es que pasa si uno de los campos del formulario es una casilla de verificacion.... en muchos casos, este IF servirá para ver si está checheado, consultarlo con la BD si en la BD está chequeado... ahora, aca no me sirve, por que?

Porque el check box indica si el Trabajo está PAGO (chequeado) o NO.... y es por eso que no puedo utilizar el mismo criterio que venia utilizando hasta ahora, pues si pongo que si el checkbox está vacio, no filtre nada... quizas yo quería ver que me muestre los campos que NO están pagos...

hay alguna forma de indicar esto? Es medio dificil, no? A mi, por lo menos, me genera como una cierta contradicion cuanto intento pensar la forma de hacerla... porque... COMO PUEDE EL SERVIDOR INTERPRETAR SI EL USUARIO DEJO EL CHECKBOX SIN CHECKEAR PORQUE NO QUIERE FILTRAR ESE CAMPO, o si lo dejo asi porque quiere mostrar SOLAMENTE los pagos que NO estan, precisamente, pagos?

No se.. me genera, como dije.. mucha contradiccion, rechazo.. jajaja.. No puedo encontrarle la vuelta, pues creo que no la tiene... Pero bueno, para eso estan los + experimentados...

Alguna ayuda? Solucion? Algo?

Muchas gracias Nuevamente a todos!

Pablo.
  #2 (permalink)  
Antiguo 28/09/2008, 10:37
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Consulta avanzada con casillas de verificacion

Hmmmm ...
A ver si te entendi:

Código PHP:
<?php
$sql 
"SELECT * FROM tabla WHERE blahblahblah LIKE '%buscar%'"//solo un ejemplo.

if(isset($_POST['checkbox']))
$sql .= " AND pago='si'";

?>
  #3 (permalink)  
Antiguo 28/09/2008, 14:42
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Consulta avanzada con casillas de verificacion

Claro... eso es lo que haria si la casilla de verificacion está tildada (en realidad utlizo la funcion empty() ..., pero el resultado creo que es el mismo...)...

Ahora mi duda viene si yo no tildo la casilla de verificacion... como el servidor, a la hora de procesar la consulta, puede saber si el usuario no la tildo porque quiere filtrar aquellos campos que NO esten pagos (es decir, el valor de checkbox sea =0), o si lo dejo en blanco porque no quiere filtrar ese campo??

Repito... es algo realmente raro y creo que nunca lo vi.. se me ocurre que podria hacer un chekbox independiente, y si esta tildado, tomar como filtro ese campo, y si no esta tildado el checkbox independiente, no tomar ese campo como filtro... pero da mucha vuelta....

alguna otra idea???

Un saludo!

Muchas gracias!

Pablo.
  #4 (permalink)  
Antiguo 28/09/2008, 15:16
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Consulta avanzada con casillas de verificacion

Cita:
Ahora mi duda viene si yo no tildo la casilla de verificacion... como el servidor, a la hora de procesar la consulta, puede saber si el usuario no la tildo porque quiere filtrar aquellos campos que NO esten pagos (es decir, el valor de checkbox sea =0), o si lo dejo en blanco porque no quiere filtrar ese campo??
Despues de haberlo leido como 5 veces a ver si entendia ... lo que te puedo decir es que el servidor no lee mentes. El solo ve: tildado o no tildado, en la variable POST no se recogen las intenciones de el usuario (XD).

Asi que eso lo tienes que programar tu.
Tendras que hacer 2 checkbox. Y dependiendo si tildo alguno, solo filtrar un campo.
Si no tildo ninguno de los dos (o ambos), es porque no quiere filtrar ese campo.
  #5 (permalink)  
Antiguo 28/09/2008, 15:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Consulta avanzada con casillas de verificacion

Creo tu mismo te haz respondido, el programa no puede "saber" lo que quiere el usuario, al menos no con algo tan sencillo, necesitarías algo muy avanzado, ya que adivinar lo que el usuario quiere esta un poco fuera de PHP directamente.

Lo más sencillo en este caso es como dices, tener dos checkboxes, uno que sea para "habilitar" el filtro, y el otro que sea para marcar si esta pagado o no.

Saludos.
  #6 (permalink)  
Antiguo 28/09/2008, 16:06
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Consulta avanzada con casillas de verificacion

Bueno... pues entonces, digamos que esa es la unica solucion que habria con PHP?

lo supuse... pero quizas habia una funcion extraña que leia la mente del usuario.. jajaja

No, a decir verdad, se me ocurrio luego de hacer la pregunta, y queria ver si compartian conmigo la solucion.... supongo que es lo unico

Un saludo a todos! Gracias de todas formas!!

Pablo.
  #7 (permalink)  
Antiguo 28/09/2008, 16:34
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Consulta avanzada con casillas de verificacion

Hmmm ... talvez podrias usar read_mind($user, IGNORE_PERV_THOUGHTS);

:D Es broma.
  #8 (permalink)  
Antiguo 28/09/2008, 17:48
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Consulta avanzada con casillas de verificacion

jajajaja....


aunque no te extrañe que en un futuro (no mu lejano!)... esa funcion deje de ser una utopia!

o acaso creias posible, hace no mucho tiempo atras, cosas como el iPhone?... etc, etc?

jajaja... un saludo! gracias
  #9 (permalink)  
Antiguo 28/09/2008, 23:24
 
Fecha de Ingreso: abril-2008
Ubicación: Querétaro, Mexico
Mensajes: 44
Antigüedad: 16 años
Puntos: 2
Respuesta: Consulta avanzada con casillas de verificacion

Hola que tal,

sobre tu problema, siento que mas bien tienes un defecto en tu interfaz mas que en tu programación.

yo solucionaría el problema de la siguiente manera:
pondria un select que se llame pagados, con tres opciones: Pagados, No pagados, Ambos


Código HTML:
<b>Ver solo los: </b><select name="pagados">
  <option value="1">Pagados</option>
  <option value="0">No pagados</option>
  <option value="2" selected>Ambos</option>
</select> 
y luego en php haria un switch para saber q valor tiene:


Código PHP:
$pagados_sql "";
switch(
$_POST['pagados']){
  case 
1:
    
$pagados_sql "`pagado` = 1"// solo los pagados
  
break;
  case 
0:
    
$pagados_sql "`pagado` = 0"//solo los no pagados
  
break;
}
// para el caso de "ambos", simplemente no pones nada, asi el query te devuelve todo


$query mysql_query("SELECT * FOM `tu_tabla` WHERE $pagados_sql etc..etc.."); 

asi forzas al usuario a escoger entre, pagados, no pagados y ambos.


y de paso... te ahorras el tener q leer la mente xD


saludos,
Carlos Alejandro
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 17:41.