Foros del Web » Programando para Internet » PHP »

Formulario de Búsqueda con varios campos

Estas en el tema de Formulario de Búsqueda con varios campos en el foro de PHP en Foros del Web. Hola, Tengo el siguiente código a ver si me pueden echar un cable, lo que quiero es un formulario de búsqueda con varios campos, primero ...
  #1 (permalink)  
Antiguo 23/02/2007, 08:46
 
Fecha de Ingreso: febrero-2005
Mensajes: 7
Antigüedad: 19 años, 2 meses
Puntos: 0
Formulario de Búsqueda con varios campos

Hola,

Tengo el siguiente código a ver si me pueden echar un cable, lo que quiero es un formulario de búsqueda con varios campos, primero se elige el país en el primer campo, una vez se ha escogido este en el siguiente campo se cargan automáticamente las áreas pertenecientes a ese país.
Una vez cargadas las áreas en el tercer campo se cargan las localizaciones correspondientes a ese área en particular.

Lo que tengo es esto: me cargan los países pero quedo trabado al intentar cargar las áreas correspondientes al país.., de hecho tal como está el código me devuelve:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\appserv\www\freint\column_future.php on line 255 (marco la línea 255 en el código más abajo)
Código:
<td id="prop-search">Country: <br />   
          <select name="country" size="1" title="Click load to show country">
		     <option value="-" >Select Country</option>

            <? include('config.php'); 
      			$sql2 = "SELECT * FROM paises";
      			$lanza2 = mysql_query($sql2) or die(mysql_error());

      			while($country = mysql_fetch_array($lanza2)){ 
	  		?>
            <option value="<? echo $country['ID']; ?>" ><? echo $country['nombre']; ?></option>
            <?  } ?>
          </select>	 
	  </td></tr>
	  <tr>
		  <td id="prop-search">Area:<br />
          	<select name="area" size="1" title="Click load to show area">
		       <option value="-" >Select Area</option>
  			    <? include('config.php'); 
      *línea 255     $sql2 = "SELECT * FROM area WHERE pais = $country['nombre']";
      			$lanza2 = mysql_query($sql2) or die(mysql_error());

      			while($area = mysql_fetch_array($lanza2)){ 
	  		?>
            <option value="<? echo $area['ID']; ?>" ><? echo $area['nombre']; ?></option>
            <?  } ?>
					  
          </select>
		  </td>
   </tr>
Y claro, ni aparece el tercer campo porque obviamente no he pasado del segundo.

Tengo la sensación de que es una tontería debida a mi falta de conocimiento, pero si alguien me podría alumbrar para yo continuar le estaría muy agradecido, gracias.

Un saludo.
  #2 (permalink)  
Antiguo 23/02/2007, 09:13
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo Re: Formulario de Búsqueda con varios campos

Tu linea sin error:

Código PHP:
$sql2 "SELECT * FROM area WHERE pais ="$country['nombre']; 
No me queda del todo claro tu código para poderte orientar con tu problema, si nos explicaras un poco el código creo que te podriamos ayudar

Saludillos.
  #3 (permalink)  
Antiguo 23/02/2007, 09:15
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: Formulario de Búsqueda con varios campos

El error que te devuelve en la linea 255 se debe a que la variable $country['nombre']" esta vacia porque cuando se carga la pagina se ejecuta todo el codigo de principio a fin. Lo que debes hacer es que no se ejecute el select de las areas hasta que el usuario no haya elegido un pais y una vez elegido debes recargar la pagina. De seguro hay mejores maneras de resolver esto, pero es la que se me ocurre pero no es muy eficiente.
__________________
->Aprender es un proceso que incluye el error..
  #4 (permalink)  
Antiguo 23/02/2007, 09:34
 
Fecha de Ingreso: febrero-2005
Mensajes: 7
Antigüedad: 19 años, 2 meses
Puntos: 0
Re: Formulario de Búsqueda con varios campos

Hola perdonar pero no tenía activadas las notificaciones...

Bueno, el error ya me lo había quitado de encima al escribir estas líneas. Efectivamente hay que conseguir que se recargue la página cada vez de manera que la forma creo que es mediante javascript y el evento onchange(), en el select, creo que van por ahí los tiros aunque se me hace un poco grande ahora mismo.

gracias a los dos.., sigo con ello en cuanto tenga la solución la posteo.

(espero que esto sea pronto..)
  #5 (permalink)  
Antiguo 23/02/2007, 10:26
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Re: Formulario de Búsqueda con varios campos

En lo personal creo que lo más efectivo para hacer lo que quieres es utilizando AJAX tenemos un foro dedicado a esto por si es que quieres consultarlo:
http://www.forosdelweb.com/f77/
En lo que a mí refiere te dejo una liga para que veas un ejemplo en funcionamiento aquí te explican como hacerlo y puedes bajarte los archivos para estudiarlo más a fondo.
http://www.formatoweb.com.ar/ajax/se..._3_niveles.php
Por otra parte me parece que tu consulta está mal hecha ya que si tu campo "pais" es de tipo CHAR O VARCHAR es decir, de tipo texto, deberías de encerrar entre comillas simples el dato que le estas pasando a la consulta. Para que te quede más claro, tu estas poniendo:
Código PHP:
$sql2 "SELECT * FROM area WHERE pais = $country['nombre']"
Cuando debería de ser así:
Código PHP:
$sql2 "SELECT * FROM area WHERE pais = '".$country['nombre']."'"
Espero haberme dado a entender y que esto te sirva por lo menos para darte una idea. Suerte
  #6 (permalink)  
Antiguo 23/02/2007, 10:57
 
Fecha de Ingreso: febrero-2005
Mensajes: 7
Antigüedad: 19 años, 2 meses
Puntos: 0
Re: Formulario de Búsqueda con varios campos

Gracias por el enlace prometo echarle un vistazo.., ya lo he conseguido!!

a ver si saco un rato luego y posteo la solución que ahora me voy del tajo.

he tenido que utilizar javascript..
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:35.