PHP - Llenar input con string de option de select

 
Vista:
Imágen de perfil de Bladimir

Llenar input con string de option de select

Publicado por Bladimir (88 intervenciones) el 15/03/2015 14:36:06
Hola a todos. Tengo un codigo que me permite elegir una opcion de un select y por medio de un script de javascript imprimir el string de la opcion elegida. El asunto es que yo quiero que el string aparezca en un input. El codigo es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>RHM</title>
</head>
 
 
<body>
	 <form name="elegir" action="#">
 
 <script type="text/javascript">
 function genero() {
     lista = document.elegir.sexog;
     elegido = lista.selectedIndex;
     opcion = lista.options[elegido];
     Concepto = opcion.value;
     sexo = opcion.text;
     document.body.style.fontFamily = Concepto;
     escribe = document.getElementById("sexo");
     escribe.innerHTML = sexo;
     escribe.value = sexo;
     }
 </script>
	  <fieldset>
	   <legend>
	    <b> Prueba: </b>
	   </legend>
	    <p>
	    <b>Sexo:</b>
	       <select name="sexog" id="sexog" onclick="genero()">
	        <option value="Masculino">Masculino</option>
	        <option value="Femenino">Femenino</option>
	       </select>
	     </p>
	</fieldset>
	    <h3 id="sexo"></h3>
	   </b> <input type="text" id="sexo"/>
	  </form>
</body>
</html>

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de txema
Val: 79
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Llenar input con string de option de select

Publicado por txema (28 intervenciones) el 15/03/2015 15:23:36
Hola Bladimir;

Tienes un problema al duplicar id="sexo"

Así que me he permitido cambiar
1
2
<h3 id="sexo"></h3>
</b> <input type="text" id="sexo"/>

por
1
2
<h3 id="sexo"></h3>
<input type="text" id="sexo2"/>

Consiguientemente, en javascript sería
1
2
3
4
escribe = document.getElementById("sexo");
escribe2 = document.getElementById("sexo2");
escribe.innerHTML = sexo;
escribe2.value = sexo;

Por otra parte, todo <form> debería incluir el method sea post o get, y tanto el <h3> como el input te funcionarían igual si estuvieran fuera del form.

P.D.: El término string personalmente siempre lo relaciono con diferentes valores (separados por comas [,]) Creo que en tu caso podemos referirnos simplemente a presentar un valor.

Nos comentas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de txema
Val: 79
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Llenar input con string de option de select

Publicado por txema (28 intervenciones) el 15/03/2015 15:51:11
Ya que estamos en PHP me permito mostrarte otra solución donde se elimina Javascript y trabaja PHP mediante la opción POST (ojo, la extensión del archivo ha de ser .php)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
 
<head>
    <title>RHM</title>
</head>
 
<body>
    <form method="post" name="elegir" action="#">
        <fieldset>
            <legend> <b> Prueba: </b> </legend>
            <p> <b>Sexo:</b>
                <select name="sexog" id="sexog" onclick="genero()">
                    <option value="Masculino">Masculino</option>
                    <option value="Femenino">Femenino</option>
                </select>
            </p>
            <input type="submit" class="button" value="Enviar">
		</fieldset>
    </form>
    <h3 id="sexo"><?php if (isset($_POST['sexog'])) { echo $_POST['sexog']; } ?></h3>
    <input type="text" id="sexo2" value="<?php if (isset($_POST['sexog'])) { echo $_POST['sexog']; } ?>" />
</body>
 
</html>

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de txema
Val: 79
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Llenar input con string de option de select

Publicado por txema (28 intervenciones) el 15/03/2015 17:27:25
Una aclaración a quien ha votado negativamente al comentario (su valoración es libre y ni este ni ningún foro es para mí una plataforma competitiva sino de pedir ayuda y ayudar, con buena voluntad y, a veces, con errores o imprecisiones)

No creo que haya ningún término despectivo hacia quien pregunta ni hacia terceros. Háganmelo saber.

De la observación de error en la repetición del id es un hecho y es común que genere errores en los navegadores.

Creo que, si copiamos el código de Bladimir es súmamente fácil implementar las correcciones enviadas, que funcionan con el menor cambio posible.

Si la opinión negativa llega de la necesaria implementación de method al form, he de decirles que es así.
Podría llamar a las funciones de Javascript sin <form> y sin <input type="submit" <!-- ... --> /> .

Código completo con las correcciones, reducción de Javascript, sin <form> y con encabezados de HTML5:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE html>
<html>
 
<head>
    <meta charset="utf-8">
    <title>RHM</title>
    <script>
        function genero() {
            var sexo = document.getElementById('sexog');
            var escribe = document.getElementById("sexo");
            var escribe2 = document.getElementById("sexo2");
            escribe.innerHTML = sexo.value;
            escribe2.value = sexo.value;
        }
    </script>
</head>
 
<body>
    <fieldset>
        <legend> <b> Prueba: </b> </legend>
        <p> <b>Sexo:</b>
            <select name="sexog" id="sexog" onchange="genero()">
                <option value="">Seleccione género</option>
                <option value="Masculino">Masculino</option>
                <option value="Femenino">Femenino</option>
            </select>
    </fieldset>
    <h3 id="sexo"></h3>
    <input type="text" id="sexo2" />
</body>
 
</html>

P.D.: El término string es traducido como cadena. Una palabra es, sin duda, una cadena de letras pero (al menos yo) el término string ha de ser referido a una cadena: si estoy examinando una palabra o frase me pueden interesar las letras (¿cuántas "a" hay en "mañana"?); cuando estoy examinando valores de un select, me limito a referirme a valores, e incluir varios de ellos correspondería a un array.
Sería bueno que las valoraciones positivas (personalmente las doy si me han sido de ayuda y sin comentarios) y las negativas tengan asociada la razón por las que lo consideramos así.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Bladimir

Llenar input con string de option de select

Publicado por Bladimir (88 intervenciones) el 15/03/2015 21:19:50
Gracias por la respuesta. Funcionó perfecto. Gracias también por aportar la solución usando php. Muy agradecido. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Llenar input con string de option de select

Publicado por MIKKIBOXKRAQER (1 intervención) el 01/08/2018 02:08:20
Gracias a tu ejemplo de javascript con select option desplegable pude mostrar el rut dinamico en mi input html conectado a la base de datos mysql...:) Gracias Totales....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar