PHP - Buscar opcion seleccionada en un combobox

   
Vista:

Buscar opcion seleccionada en un combobox

Publicado por Matias (3 intervenciones) el 18/09/2013 13:03:38
Buenas, necesitaria que me ayuden con un tema que estoy resolviendo. Resulta que estoy haciendo una aplicacion web con php y mysql. Lo que hace basicamente es armar dos listas en forma de <select> <options>. La segunda lista depende de la primera, osea que al actualizar la primera, actualiza la segunda. Hasta ahi todo bien. Lo que me estaria faltando es que busque el <options> seleccionado en pantalla.
Mis tres tablas son: Rubro, Actividad y Empresas.
Por logica, lo que quiero hacer es que seleccionando un Rubro y Actividad, me busque las empresas.
La tabla Empresas tiene las siguientes columnas: idempresa, descripcion, domicilio, telefono, idrubro, idactividad y sitio.
Rubro tiene: idrubro y descripcion
Actividad tiene: idactividad, descripcion, idrubro
Dentro del codigo, tengo lo siguiente:

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<html>
<head>
<script type="text/javascript">
  $(document).ready(function(){
    $("#Rubro").change(function(){
    $.ajax({
      url:"procesa.php",
      type: "POST",
      data:"idrubro="+$("#Rubro").val(),
      success: function(opciones){
        $("#Actividad").html(opciones);
      }
    })
  });
});
</script>
</head>
 
<body>
<form class="contact_form" method="post" action="searchcat.php">
		<ul>
 
			<li>
 
			<?php
			  $conexion = new mysqli("127.0.0.1","***","***","***",3306);
			  $strConsulta = "select idrubro, descripcion from Rubro";
			  $result = $conexion->query($strConsulta);
			  $opciones = '<option value="0"> Elige un Rubro</option>';
			  while( $fila = $result->fetch_array() )
			  {
			     $opciones.='<option value="'.$fila["idrubro"].'">'.$fila["descripcion"].'</option>';
 
			  }
			?>
			  <div>
			     <select id="Rubro" class="lista">
			     <br><br>
			     <?php
			     echo $opciones;
			     ?>
			     </select>
			   </div>
			  <div>
			  <br>
			     <select id="Actividad" class="lista">
			     <option value="0">Elige una Actividad</option>
			     </select>
			</div>
 
			</li>
			<li>
			</li>
			<li>
 
//ESTE BOTON ES EL QUE TENGO QUE HACER QUE BUSQUE 
				<button class="submit" name="lista" type="submit value="Search" >Buscar</button>
					
			</li>	   
			</ul>
		</form> 
</body>
</html>
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 xve

Buscar opcion seleccionada en un combobox

Publicado por xve (5522 intervenciones) el 18/09/2013 22:16:33
Hola Matias, por lo que veo, en el botón haces un submit, por lo que quieres hacer la consulta al cargar nuevamente la pagina, no?

En el código html, en el tag <select> te faltaría poner el nombre de cada uno... algo como:
1
<select id="Rubro" class="lista" name="idrubro">
y
1
<select id="Actividad" class="lista" name="idactividad">

Si es así, la consulta que yo haría seria algo así:
1
2
$query="SELECT * FROM Empresas
WHERE idrubro=".$_POST["idrubro"]." AND idactividad=".$_POST["idactividad"];

Si necesitas ayuda para hacerlo con jquery coméntanos, ok?
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

Buscar opcion seleccionada en un combobox

Publicado por Matias (3 intervenciones) el 19/09/2013 12:38:37
Buenas! Primeramente gracias por la pronta respuesta. Estuve probando lo que pusiste y sigue igual. El <input> me gustaria que busque en una nueva pagina, tal como mencionaste. Basicamente, el <form> llama a un searchcat.php que es quien busca. Haciendo los cambios que me indicaste, me quedo algo asi:

index.php
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<html>
<head>
<script type="text/javascript">
  $(document).ready(function(){
    $("#Rubro").change(function(){
    $.ajax({
      url:"procesa.php",
      type: "POST",
      data:"idrubro="+$("#Rubro").val(),
      success: function(opciones){
        $("#Actividad").html(opciones);
      }
    })
  });
});
</script>
</head>
 
<body>
<form class="contact_form" method="post" action="searchcat.php">
		<ul>
 
			<li>
 
			<?php
			  $conexion = new mysqli("127.0.0.1","***","***","***",3306);
			  $strConsulta = "select idrubro, descripcion from Rubro";
			  $result = $conexion->query($strConsulta);
			  $opciones = '<option value="0"> Elige un Rubro</option>';
			  while( $fila = $result->fetch_array() )
			  {
			     $opciones.='<option value="'.$fila["idrubro"].'">'.$fila["descripcion"].'</option>';
 
			  }
			?>
			  <div>
			     <select id="Rubro" class="lista"  name="idrubro">
			     <br><br>
			     <?php
			     echo $opciones;
			     ?>
			     </select>
			   </div>
			  <div>
			  <br>
			     <select id="Actividad" class="lista" name="idactividad">
			     <option value="0">Elige una Actividad</option>
			     </select>
			</div>
 
			</li>
			<li>
			</li>
			<li>
 
//ESTE BOTON ES EL QUE TENGO QUE HACER QUE BUSQUE 
				<button class="submit" name="lista" type="submit value="Search" >Buscar</button>
					
			</li>	   
			</ul>
		</form> 
</body>
</html>

y el searchcat.php
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
37
38
39
40
<html>
<head>
</head>
<body>
<?php
	  if(isset($_POST['submit'])){
	  if(isset($_GET['go'])){
	  if(preg_match("/^[  a-zA-Z]+/", $_POST['lista'])){
	  $lista=$_POST['lista'];
	  echo "<h2>Resultados de Busqueda</h2><br>";
	  //connect  to the database 
	  include "conexion.php";
	  $versitio="ver sitio";
	  //-query  the database table 
	  $sql="SELECT * FROM Empresas WHERE idrubro=".$_POST["idrubro"]." AND idactividad=".$_POST["idactividad"];
	  //-run  the query against the mysql query function 
	  $result=mysql_query($sql);
	  //-create  while loop and loop through result set 
	  while($row=mysql_fetch_array($result)){
	          $descripcion  =$row['descripcion'];
	          $domicilio=$row['domicilio'];
	          $idempresa=$row['idempresa'];
	          $sitio=$row['sitio'];
	  //-display the result of the array 
	  echo "<ul>\n";
 
	  echo "<li>"  .$descripcion . " - " .$domicilio .  "</li>\n";
	  echo "<a href='".$sitio."'>".$descripcion . " - " .$domicilio .  "</a>";
 
	  echo "</ul>";
	  }
	  }
	  else{
	  echo  "<p>Please enter a search query</p>";
	  }
	  }
	  }
	?>
</body>
</html>

Lo que hace ahora es abrir una nueva pagina pero no muestra los resultados de busqueda. Voy a seguir revisando, pero se te ocurre alguna otra cosa que me pueda estar faltando?
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 xve

Buscar opcion seleccionada en un combobox

Publicado por xve (5522 intervenciones) el 25/09/2013 22:02:40
Hola Matias, veo cosas algo extrañas...
Que es $_GET['go']?
y porque haces esto: preg_match("/^[ a-zA-Z]+/", $_POST['lista']) cuando $_POST["lista"] es el botón que hace el submit, no?

Yo creo que el problema es no te cumple con los condicionales del archivo searchcat.php...
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

Buscar opcion seleccionada en un combobox

Publicado por Matias (3 intervenciones) el 25/09/2013 12:42:03
Probe con lo que me dijiste y sigue pasando lo mismo. Donde podre estar fallando? gracias y 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