Foros del Web » Programando para Internet » PHP »

Lista desplegable vs. ventana busqueda

Estas en el tema de Lista desplegable vs. ventana busqueda en el foro de PHP en Foros del Web. Hola amigos, Dentro de un formulario tengo que mostrar como criterio para realizar una búsqueda un combo con una serie de valores. Concretamente se trata ...
  #1 (permalink)  
Antiguo 26/05/2003, 10:25
 
Fecha de Ingreso: mayo-2003
Mensajes: 125
Antigüedad: 14 años, 7 meses
Puntos: 0
Lista desplegable vs. ventana busqueda

Hola amigos,

Dentro de un formulario tengo que mostrar como criterio para realizar una búsqueda un combo con una serie de valores. Concretamente se trata de más de 500 registros.

Todos los ejemplos que he visto sobre listas desplegables no tiran de BD, debido fundamentalmente a que son pocos valores. En mi caso y al tratarse de tantos registros no es de recibo mostrar un combo tan brutal.

¿Como podria hacer una ventana de búsqueda asociada a un formulario y que tirara de BD? ¿Algún ejemplo sencillo?

Aqui se mezcla HTML, Javascript y PHP y la verdad es que estoy un poco confuso

Esperando vuestra ayuda, un saludo
  #2 (permalink)  
Antiguo 26/05/2003, 11:13
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Normalmente para estos casos lo mejor es ver de qué forma se pueden agurpar al menos la mitad de esos valores con otra mitad, me explico:

Por ejemplo tienes los valores para "color de ojos":azul claro, azul oscuro, azul celeste, marrón oscuro, marron claro... etc, y en este caso lo mejor sería poner un campo desplegable con los colores y otro con las tonalidades.

Seguramente tus campos serán más complejos que este ejemplo,pero estoy seguro de que con 500 registros seguro que los puedes agrupar en más paqueños o restrigir la búsqueda.

(Fíjate en el propio buscador de foros del web).

Suerte
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #3 (permalink)  
Antiguo 26/05/2003, 14:06
 
Fecha de Ingreso: mayo-2003
Mensajes: 125
Antigüedad: 14 años, 7 meses
Puntos: 0
Se trata de códigos que no puedo agrupar de ninguna manera y que son cruciales en la búsqueda.

Gracias
  #4 (permalink)  
Antiguo 26/05/2003, 17:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Yo usaría un buscador .. no un mega-combobox (lista delplegable) ... me parece demasiado dato como para que se lo lean para buscar uno en concreto (pese que ya sabemos que marcando la inicial .. podríamos saltar sin problemas a los dtos que empiecen por dicha letra .. y si los entregas ordenados alfabeticamente ..)

En tal caso .. (hacer la lista delplegable) sólo se trata de hacer una consulta "bulgar y corriente" a tu BD . .a esa tabla bajo los criterios que estimes oportunos para mostrar esos datos y .. ordenados por el campo que muestres en tu lista desplegable .. Luego, compones el <select> de forma dinámica ...

Código PHP:
<?
// conectas a tu BD .. seleccionas tu BD .. etc .. etc ..
$consulta=mysql_query("SELECT valor_item,nombre_item FORM tabla ORDER by dato_tiem") or die (msyql_error());
echo 
"<select name=\"dato\">\n";
While (
$registro=mysql_fetch_array($consulta)){
echo 
"<option value=\"$registro['valor_item']\">$registro['nombre_item']</option>\n";
}
echo 
"</select>\n";

?>
Usa los nombres de los campos que correspondan .. La base es esa .. Generar HTML "dinámicamente" ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 27/05/2003, 13:56
 
Fecha de Ingreso: mayo-2003
Mensajes: 125
Antigüedad: 14 años, 7 meses
Puntos: 0
No lo tengo claro

Hola,

Pues como he dicho, estoy intentando meter un select con acceso a datos (mas o menos optimizado) dentro de un combo, y dentro de un formulario.

El caso es que intento adecuar lo que me ha pasado cluster y fallo.

Os adjunto el código por si lo veis claro, yo soy un poco torpe.

Código PHP:
<form action="busqueda.php" name="busqueda" id="busqueda" method="POST">
<table width="75%" align="center">
<tr>
    <td>&nbsp;</td>
</tr>
<tr>
    <td colspan="2" align="center" 
    <?if ($_GET["errordatos"]=="si"){?>
        bgcolor=red><span style="color:ffffff"><b>Datos incorrectos</b></span>
    <?}else{?>
        bgcolor=#cccccc>Introduzca al menos un dato de búsqueda
    <?}?></td>
</tr>
<tr>
    <td>&nbsp;</td>
</tr>
<tr>
    <td align="right">Apellidos:</td>
    <td><input type="Text" name="apellidos" size="50" maxlength="50"></td>
</tr>
<tr>
    <td align="right">Código ocupación demandada:</td>
    <td>
    //********************
    <?
    
// Nos conectamos con el servidor MySQL
    
$conexion mysql_connect("localhost""root""")
    or die(
"¡No se ha podido establecer la conexión con el servidor local!");
    
    
// Seleccionamos la Base de Datos
    
$resp mysql_select_db("test")
    or die(
"¡No se ha podido seleccionar la base de datos yyy!");
    
    
$consulta=mysql_query("SELECT codigo,descripcion FROM tabla ORDER by descripcion") or die (msyql_error());
    echo 
"<select name=\"dato\">\n";
    While (
$registro=mysql_fetch_array($consulta)){
    echo 
"<option value=\"$registro['codigo']\">$registro['descripcion']</option>\n";
    }
    echo 
"</select>\n";
    
?>
    //*****************
    </td>
</tr>

<tr>
    <td align="right">DNI:</td>
    <td><input type="Text" name="dni" size="9" maxlength="9"></td>
</tr>
<tr>
    <td align="right">Teléfono:</td>
    <td><input type="Num" name="telefono" size="9" maxlength="9"></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
    <td colspan="2" align="center"><input type="submit" value="Buscar" name="BBuscar"><input type="reset" value="Restablecer" name="B2"></td>
</tr>
</table>
</form>
y otra preguntita, ¿puedo refenciar al contenido de ese combo tal y como hago con las cajas de texto del formulario en el php de destino.

Gracias una vez mas
  #6 (permalink)  
Antiguo 27/05/2003, 14:23
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Tu fallo esta en como referenciar arrays desde dentro de una cadena. Deberias usar:
Código PHP:
 echo "<option value=\"{$registro['codigo']}\">{$registro['descripcion']}</option>\n"
Creo que tambien lo podrias hacer sin poner la comilla simple de las claves de los arrays, pero yo prefiero usar las llaves. En http://www.php.net/manual/en/language.types.string.php tienes la explicacion oficial.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 27/05/2003, 21:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues sí .. es lo que comenta josemi .. (el error fué mio ) Tambíen se podría concatenar para evitar el problema con las comillas ..

Código PHP:
echo "<option value=\"".$registro['codigo']."\">".$registro['descripcion']."</option>\n"
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 28/05/2003, 11:26
 
Fecha de Ingreso: mayo-2003
Mensajes: 125
Antigüedad: 14 años, 7 meses
Puntos: 0
Solucionado

Hola,

Todo solucionado. Muchas gracias a todos por vuestra ayuda.

Cuidaros
__________________
Lailuluelo
El error está en lo obvio
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 08:52.