Foros del Web » Programando para Internet » PHP »

Select generado con while en un form

Estas en el tema de Select generado con while en un form en el foro de PHP en Foros del Web. Amigos: Tengo un formulario dentro de una funcion. En este formulario traigo datos de una base y quiero generar los selects mediante while. Pero al ...
  #1 (permalink)  
Antiguo 23/08/2010, 12:23
Avatar de armandoweb  
Fecha de Ingreso: enero-2003
Ubicación: San Cristobal, Santa Fe, Argentina
Mensajes: 544
Antigüedad: 21 años, 3 meses
Puntos: 7
Select generado con while en un form

Amigos:

Tengo un formulario dentro de una funcion.
En este formulario traigo datos de una base y quiero generar los selects mediante while.
Pero al hacerlo me muestra el select arriba del form y no dentro...
Este es el codigo del form:

Código PHP:
$codigo '<form id="form1" name="form1" method="post" action="resultado.php" class="buscar">
<label for="ciudad">Seleccione la ciudad:</label>                            
<select name="ciudad" id="ciudad" class="campo">
<option value="0" selected="selected">Seleccionar</option>
<option value="Santa Fe">Santa Fe</option>
<option value="Santo Tome">Santo Tome</option>
<option value="Parana">Parana</option>
<option value="Crespo">Crespo</option>
</select>
<input type="submit" id="login" value="" />  
</form>'

y esta es la funcion:

Código PHP:
function menu_desplegable($sql,$valor,$nombre){
echo 
"<select name='$nombre' id='ciudad' class='campo'>";
$resultado=mysql_query($sql);
echo 
'<option value="0" selected="selected">Seleccionar</option>';
while (
$fila=mysql_fetch_row($resultado)){
if (
$fila[0]==$valor){
   echo 
"<option selected value='$fila[0]'>$fila[0]";
}else{
   echo 
"<option value='$fila[0]'>$fila[0]";
}
}
echo 
"</select>";

Cuando inserto la funcion en el lugar donde necesito generar el select no me lo muestra ahi, sino encima del comienzo del form, por qué puede pasar esto???
Desde ya muchas gracias.
__________________
www.awdesarrollos.com.ar - [twitter: @armandoweb] - [Skype: awdesarrollos"]
  #2 (permalink)  
Antiguo 23/08/2010, 12:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Select generado con while en un form

¿porque?

pues es simple... pues estas imprimiendo el HTML!!!

y es obvio, donde ejecutas la función lo imprime.. ¿cierto?

pues eso es exactamente lo que hace la función...

¿como evitarlo?

bueno, en lugar de imprimir el resultado... puedes ir asignando a una variable, y finalmente usas return para que devuelve el <select/> en lugar de echo para imprimir...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/08/2010, 12:53
Avatar de armandoweb  
Fecha de Ingreso: enero-2003
Ubicación: San Cristobal, Santa Fe, Argentina
Mensajes: 544
Antigüedad: 21 años, 3 meses
Puntos: 7
Respuesta: Select generado con while en un form

Si pateketrueke, pero yo meto la funcion en el medio del form.
Lo que necesito es generar el select que menciono primero por el select dinamico realizado a través de la funcion que muestro en segundo termino.
Pero al intentar intercalar la funcion dentro del form el select no se muestra alli, sino por encima del form, esa es mi pregunta, porque puede pasar esto.
Muchas gracias!!
__________________
www.awdesarrollos.com.ar - [twitter: @armandoweb] - [Skype: awdesarrollos"]
  #4 (permalink)  
Antiguo 23/08/2010, 12:56
Avatar de armandoweb  
Fecha de Ingreso: enero-2003
Ubicación: San Cristobal, Santa Fe, Argentina
Mensajes: 544
Antigüedad: 21 años, 3 meses
Puntos: 7
Respuesta: Select generado con while en un form

Perdon, no lei completa tu respuesta completa...
Puede ser por lo ultimo que mencionas, yo tengo echos dentro de la funcion en vez de return, puede ser por eso que me lo muestre de distinta forma?
__________________
www.awdesarrollos.com.ar - [twitter: @armandoweb] - [Skype: awdesarrollos"]
  #5 (permalink)  
Antiguo 23/08/2010, 12:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Select generado con while en un form

¿pero si entendiste mi respuesta?

entiende que la función que genera el <select/> no debe imprimirlo con echo, debes cambiar dicho comportamiento para que en lugar de imprimirlo lo devuelva...

y así ya puedes concatenarlo en cualquier otra variable, etc...


Edito: que bueno que leíste por completo mi mensaje...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 23/08/2010, 13:11
Avatar de armandoweb  
Fecha de Ingreso: enero-2003
Ubicación: San Cristobal, Santa Fe, Argentina
Mensajes: 544
Antigüedad: 21 años, 3 meses
Puntos: 7
Respuesta: Select generado con while en un form

Ok, pruebo eso a ver si logro hacer lo que busco.
Luego posteo la solucion definitiva.
Muchas gracias!!!
__________________
www.awdesarrollos.com.ar - [twitter: @armandoweb] - [Skype: awdesarrollos"]
  #7 (permalink)  
Antiguo 25/08/2010, 11:18
Avatar de armandoweb  
Fecha de Ingreso: enero-2003
Ubicación: San Cristobal, Santa Fe, Argentina
Mensajes: 544
Antigüedad: 21 años, 3 meses
Puntos: 7
Respuesta: Select generado con while en un form

Perfecto pateketrueke, ahora si me imprime el select donde lo deseo.

Pero ahora me encuentro con otro problema.

Hago la consulta correspondiente seleccionando los valores del campo CIUDADES de la tabla PROPIEDADES y los muestro en el select mediante una funcion, pero ahora tambien necesito mostrar mas valores de otros campos por ejemplo PAISES en la misma tabla y también quiero mostrarlos en otro select. Aclaro que no necesitaría en principio que sean dependientes.

Lo que no me doy cuenta es como realizar las consultas. La primera la realizo asi:

Código PHP:
$consulta "SELECT ciudad FROM propiedades ORDER BY id ASC"
y $consulta se la paso como parametro a la funcion que genera el select dinamico. Me podrías orientar un poco en la teoria de como encarar la cuestion para mostrar varios selects utilizando la misma funcion???

Desde ya muchas gracias!
__________________
www.awdesarrollos.com.ar - [twitter: @armandoweb] - [Skype: awdesarrollos"]
  #8 (permalink)  
Antiguo 25/08/2010, 11:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Select generado con while en un form

lo que necesitas son dos cosas: el value del <option/> y el texto de dicha opción....

en el value puede ir un identificador de la misma tabla, o bien algo útil según sea el caso...

como texto, igualmente debes extraer otra columna que sirva de identificación...

se me ocurre que lo que debes pasar a la función que genera el <select/> debe ser la consulta SQL en si, sin ejecutar... tan solo el string

la clave es la siguiente: seleccionar tan solo dos columnas, dichas columnas las extraes por medio de un fetch_array() en base es sus índices numéricos...

así el índice cero será siempre el value, y el índice uno el texto de cada opción... (:

y en caso de solo seleccionar una columna, tan solo se usa el mismo índice para ambos casos...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 25/08/2010, 12:08
Avatar de armandoweb  
Fecha de Ingreso: enero-2003
Ubicación: San Cristobal, Santa Fe, Argentina
Mensajes: 544
Antigüedad: 21 años, 3 meses
Puntos: 7
Respuesta: Select generado con while en un form

Puede ser, lo probaré...

Otra cosa que se me ocurrió es ejecutar la consulta dentro de la funcion que genera el select y en la funcion como parámetro le indico el campo de la tabla sobre la que debe generar el select... que te parece??

Muchas gracias!!!
__________________
www.awdesarrollos.com.ar - [twitter: @armandoweb] - [Skype: awdesarrollos"]

Etiquetas: select, formulario
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 19:36.