Valor de lista de seleccion a cuadro de texto

davidd1991

Estoy haciendo una web en mysql, php y html y tengo un formulario que contiene una lista de seleccion (<select> ) y sus opciones las saco de una base de datos, lo tengo asi:

echo "<select size = 1 name=ubicacion>";
while($fila = mysql_fetch_array($consulta))
{
echo "<option value = $cuenta[nombre]>$fila[nombre]</option>";
}

fila recoge los campos de consulta (que es el select) y muestra el valor nombre. Lo que quiero es que cuando se elija un valor de esta lista, este valor pase automaticamente a un cuadro de texto, para asi facilitar el envio de la información...no se si me entendeis!!
es eso posible? gracias!!

Fr4nk0

No se facilita en nada, ya que solo uno de los valores del select se enviará en el formulario (a no ser que sea un select multiple).

Lo que quieres se puede hacer, pero yo no le veo sentido.

Una forma de hacerlo (con JavaScript es) es escribir en el head un script con la función que realiza la copia del select a un input. Suponiendo que el id del input sea "InputSelect" , entonces:

<script type='text/Javascript'>
function selectToInput(objSelect){
  var inputText = document.getElementById("InputSelect"); //Con esto obtenemos //el input donde vamos a guardar el valor del select

inputText.value=(objSelect.options[objSelect.selectedIndex]).value; //o .text 
//con esto cogemos la opcion del select que esta marcada (selectedIndex), y //obtenemos su value o su text -> <option //value=VALUE>TEXT</option>. Cogera una cosa u otra segun se ponga //.value o .text

}

</script>

Luego en el select, se pone <select onclick='selectToInput(this)'> .... </select>
y creamos tb el input, <input type='text' id='InputSelect' .... />.

Otra forma es poniendo a cada Option, una funcion en onclick que haga eso. Seria algo tal que asi

<select>
<option value='valor1' onclick='selectToInput(this)'>textoOption1</option>
<option value='valor2' onclick='selectToInput(this)'>textoOption2</option>
...
</select>

<input type='text' id='InputSelect' .... />

y la funcion (en el script) sería algo tal que así

function selectToInput(opt){
  var inputText = document.getElementById("InputSelect"); //Con esto obtenemos el input donde //vamos a guardar el valor del option seleccionado
inputText.value=opt.text; // o opt.value
}

Esta segunda forma, la función es más simple, pero escribes un onclick en cada una de las opciones. Mientras que en la 1ª forma, solo escribes el onclick en el select, y la opción se coge del conjunto de opciones del select, y el indice seleccionado.

davidd1991

#2
muchas gracias, mañana en el curro lo pruebo y te cuento ;)

NeB1

#3 el tema es que no sabes manejar el valor del select e intentas hacer una chapuza para pasarlo a un input text?? es que te ahorrarías faena manejando directamente el select.

al hacer $_POST['nameSelect'] recoges el "value" del "option" que han seleccionado.

Fr4nk0

NeB1 eso le dije yo, que no tiene sentido pq un valor se envia por el formulario (o varios, pero no creo q este sea el caso). Pero como quería eso...
A no ser que lo quiera para ver cual esta seleccionado xD

Usuarios habituales

  • Fr4nk0
  • NeB1
  • davidd1991