Foros del Web » Programando para Internet » PHP »

Problema con lista dezplegable

Estas en el tema de Problema con lista dezplegable en el foro de PHP en Foros del Web. Tengo el siguiente codigo para mostrar un combo box basado en una consulta SQL $db_conexion= mysql_connect("localhost", "nobody") or die("No se pudo conectar a la Base ...
  #1 (permalink)  
Antiguo 26/06/2002, 22:43
 
Fecha de Ingreso: junio-2002
Ubicación: BOGOTA COLOMBIA
Mensajes: 52
Antigüedad: 21 años, 9 meses
Puntos: 0
Problema con lista dezplegable

Tengo el siguiente codigo para mostrar un combo box basado en una consulta SQL
$db_conexion= mysql_connect("localhost", "nobody")
or die("No se pudo conectar a la Base de datos") or die(mysql_error());
mysql_select_db("bdatos") or die ("Error al conectar a la base de datos") or
die(mysql_error());
$usuario_consulta = mysql_query("SELECT * FROM tabla WHERE disponible ='S'")
or die("No se pudo realizar la consulta a
la Base de datos");
$N_Filas = mysql_num_rows($usuario_consulta);
echo "<select name=menuhoras>";
for ($i=0;$i<$N_Filas;$i++)
{
$resultados = (mysql_fetch_array$usuario_consulta);
echo "<option value=".$i.">".$resultados[horas]."</option>";
}
echo "</select>";?>
De echo funciona perfecto el problema es que yo quiero transferir el valor escogido en la lista para transferirlo a otro formulario pero en vez de mostrarme el valor dezplegado me muestra el indice del array. agradezco su colaboracion ;)
  #2 (permalink)  
Antiguo 26/06/2002, 23:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Re: Problema con lista dezplegable

Solo tienes que leer el array que le llega al script que envias los datos :

Por ejemplo .. usando un bucle foreach:

foreach ($elcombox as $indice =>$valor){
echo "$indice : $valor";
}

Un saludo,
  #3 (permalink)  
Antiguo 27/06/2002, 00:07
 
Fecha de Ingreso: junio-2002
Ubicación: BOGOTA COLOMBIA
Mensajes: 52
Antigüedad: 21 años, 9 meses
Puntos: 0
Re: Problema con lista dezplegable

La Verdad no te entiendo en donde debe ir el bucle, basicamente quiero pasar el valor escogido en el combobox mediante el metodo post a otra pagina con un formulario para despues ser grabado en la base de datos me entiendes.

pd: Gracias por su ayuda la verdad es que me demoro mas en editar el mensaje que ustedes en contestarme eso si es efectividad
  #4 (permalink)  
Antiguo 28/06/2002, 19:11
 
Fecha de Ingreso: junio-2002
Ubicación: BOGOTA COLOMBIA
Mensajes: 52
Antigüedad: 21 años, 9 meses
Puntos: 0
Re: Problema con lista dezplegable


Comoya lo exprese antes cuando llevo el valor del combobox a otro formulario aparece como valor el indice del array no el valor que elegi entonces lo que hize en el otro formulario fue conectarme a la base de datos y tratar de imprimir el array en la posicion [combobox](ya que esta contiene en valor del indice de la opcion que escogi en el otro formulario) pero tampoco funciono ALGUNA SUGERENCIA
  #5 (permalink)  
Antiguo 28/06/2002, 21:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Re: Problema con lista dezplegable

A ver si ahora nos vamos entendiendo ...

Segun el "select" que estas formando .. el resultado que deberia entregarte es un string (cadena) y no un Array (arreglo, matriz .. como lo quieras llamar).

<?
$usuario_consulta = mysql_query("SELECT * FROM tabla WHERE disponible ='S'") or die("No se pudo realizar la consulta a la Base de datos");
// $N_Filas = mysql_num_rows($usuario_consulta); si en el resto de codigo no necesitas el total
// de filas del resultado de la consulta .. no es necesario ejecutar esta funcion si usamos
// un bucle while()

echo "<select name='menuhoras'>";
$i=0; // iniciamos contador.
while ($resultados = mysql_fetch_array$usuario_consulta){
echo "<option value='$i'>".$resultados[horas]."</option>"; // acuerdate de que un echo no puedes usar comillas dobles dentro del mismo.
$i++; // incrementamos tu contador ...
}
echo "</select>";
?>

Y en tu script que envias este "select" .. tendrias el string .. $menuhoras

Ahora .. la prengunta es:
Se supone q el $i .. es el nº de registro que le corresponde de esa lista desplegable ..
Si es asi .. es de suponer q en esa tabla tienes (si no lo tienes lo deberias crear) un registro tipo indice autonumerico (o no, es opcional pero recomendable) ..
por lo tanto .. las referencias de esa lista deberian ser el "ID" (identificativo .. campo indice .. ) de ese registro.
seria algo asi:

echo "<option value='$resultados[id]'>".$resultados[horas]."</option>";
(si usases eso .. ya podriamos eliminar ese contador $i y referencias a el.

De esta manera .. guardas en todo momento la correspondecia entre el valor de la lista y su correcto lugar que ocupa en esa tabla (fila).

Espero que este claro ahora ?¿.

Un saludo,
  #6 (permalink)  
Antiguo 28/06/2002, 21:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Re: Problema con lista dezplegable

ahh otra cosa ..
no mezcles combobox con listas desplegables .. el codigo q pusistes primero es una lista desplegable ...

Ya resolvistes ese problema y ahora tienes problemas con un combobox?

Aclarate . y si es un combobox lo que tienes problemas ahora . mejor inicia otra pregunta (post, mensaje) con el codigo que usas para ver q pasa ahora ...

Un saludo,
  #7 (permalink)  
Antiguo 29/06/2002, 21:30
 
Fecha de Ingreso: junio-2002
Ubicación: BOGOTA COLOMBIA
Mensajes: 52
Antigüedad: 21 años, 9 meses
Puntos: 0
Re: Problema con lista dezplegable

LO logre despues de muchos intentos logre lo que qqueria gracias a todos los que colaboraron con esta noble causa (especialmente cluster por su paciencia)bueno los estare molestando en una proxima ocacion saludos.....
:-p <IMG SRC="images/futbol.gif" WIDTH="15" HEIGHT="15" HSPACE="3"> BRASIL CAMPEON ARRIBA SURAMERICA!!!!!
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:01.