PHP - Anidar consultas tipo filtros

 
Vista:
sin imagen de perfil
Val: 47
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Anidar consultas tipo filtros

Publicado por Marlon (15 intervenciones) el 27/05/2019 17:53:53
Hola muy buenas

La cuestión es que debo de hacer un buscador con filtros, tengo varios selectores (selects, checkbox y un input) me gustaria saber como puedo anidar esas consultas cuando se vayan seleccionando sin que se pierda la seleccionada anteriormente.

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
Imágen de perfil de Javier
Val: 164
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Anidar consultas tipo filtros

Publicado por Javier (42 intervenciones) el 27/05/2019 19:03:19
Puedes hacerlo de varias maneras, pero por facilidad puedes crear sesiones, es decir, en cada formulario vas guardando el input de cada una en una variable de sesión

1
$_SESSION('option') = $var

Así sucesivamente
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
sin imagen de perfil
Val: 47
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Anidar consultas tipo filtros

Publicado por Marlon (15 intervenciones) el 27/05/2019 21:57:47
muchas gracias, hay otra forma que no sea por sesiones?
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
Imágen de perfil de Javier
Val: 164
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Anidar consultas tipo filtros

Publicado por Javier (42 intervenciones) el 27/05/2019 23:06:09
Como comenta la compañera, tendrias que recurrir a Javascript o bien podrias usar Cookies... pero justamente la pregunta que hace la compañera es relativa para saber que solución darte
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
Imágen de perfil de Kathyu
Val: 1.714
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Anidar consultas tipo filtros

Publicado por Kathyu (470 intervenciones) el 27/05/2019 23:04:02
Duda: se hace todo en tiempo real?
Si es si, significa que lo esta haciendo con JS y los OnChange pueden manipular eso.
Si es no significa que no se va a recargar nada hasta que haga el envió del formulario de consulta, en ese caso todos los filtros pueden ser consultados en la query final tomando en cuenta algunos IF's por si un filtro va vació.
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
sin imagen de perfil
Val: 47
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Anidar consultas tipo filtros

Publicado por Marlon (15 intervenciones) el 28/05/2019 00:04:29
no no es en tiempo real ya mas o menos capte la idea.
hay alguna forma de que si un input este vacio o un select no haya echo el change no aparezca en la url?
--> ejemplo: ?country=Colombia&name=

muchisimas gracias de antemano :)
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
Imágen de perfil de Kathyu
Val: 1.714
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Anidar consultas tipo filtros

Publicado por Kathyu (470 intervenciones) el 28/05/2019 00:33:43
Mire, al final lo que usted quiere es que funcione o no? Depende de usted si se quiere complicar o no.

Yo siempre digo, divide y vencerás !!! (aunque esto implique hacer cosas que no son tan PRO's )

1- Use post, creo que get es mala idea.
2- Haga uso de sus amigos los IF
[noobMode = ON]
PseudoCodigo
1
2
3
4
5
6
7
8
9
10
11
12
if ($POST['nameSelect'] == ''){
   $query = (SELECT * FROM tabla WHERE filtroCheckbox = $variable AND filtroInput = $variable)
}
elseif ($POST['$nameCheckbox'] ==''){
   $query = (SELECT * FROM tabla WHERE filtroSelect = $variable AND filtroInput = $variable)
}
elseif ($POST['$nameInput'] ==''){
   $query = (SELECT * FROM tabla WHERE filtroSelect = $variable AND filtroCheckbox = $variable)
}
else{
   $query = (SELECT * FROM tabla WHERE filtroSelect = $variable AND filtroCheckbox = $variable AND filtroInput = $variable)
}

En este caso un case bien hecho se vería mejor

[noobMode = OFF]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 47
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Anidar consultas tipo filtros

Publicado por Marlon (15 intervenciones) el 28/05/2019 00:54:59
muchísimas gracias Kathyu :)

por ultimo y disculpa :) yo puedo hacer esto antes del envió?
o alguna forma de hacerlo? jeje


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<form class="mx-3" action=''" onsubmit="myFunction()">

<input type="" name="name" class="form-control" id="name">

<!-- cake php -->
  <?=$this->Form->control('country', ['id' => 'country', 'class' => 'form-control', 'label' => 'País', 'placeholder' => 'PAIS', 'options' => ['' => ''],'onchange'=>"this.form.submit()",'default' => '1]);?>

<!-- cake php -->

</form>


<script type="text/javascript">
  function myFunction(){
    var name = document.getElementById('name');
    console.log('hola2');
    console.log(name.value);
    if(name.value == ''){
      name.remove();
    }
  }
</script>
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
Imágen de perfil de Kathyu
Val: 1.714
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Anidar consultas tipo filtros

Publicado por Kathyu (470 intervenciones) el 28/05/2019 18:08:18
Pues uno trabajando no se puede poner a analizar a detalle el código, no se que hace eso o que es lo que quiere hacer, explique y veremos...
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
sin imagen de perfil
Val: 47
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Anidar consultas tipo filtros

Publicado por Marlon (15 intervenciones) el 28/05/2019 21:26:48
muchisimas gracias Kathyu ya he logrado lo que queria lo que hice fue unas validaciones por javascript antes de hacer el post para que no me enviara los datos que no se han seleccionado
le agradezco mucho el haberme ayudado
saludos :)
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
Imágen de perfil de Kathyu
Val: 1.714
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Anidar consultas tipo filtros

Publicado por Kathyu (470 intervenciones) el 28/05/2019 21:53:49
Que bueno. Recuerde validar en el server tambien no solo a nivel HTML/JS
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
sin imagen de perfil
Val: 47
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Anidar consultas tipo filtros

Publicado por Marlon (15 intervenciones) el 28/05/2019 22:23:10
sii claro muchas 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