Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Asignar valor a un input type radio seleccionado de un campo de un input text

Estas en el tema de Asignar valor a un input type radio seleccionado de un campo de un input text en el foro de Jquery en Foros del Web. Hola Tengo un formulario en el que hay dos botones de radio. Si se clica el primero de ellos, el valor que voy a pasar ...
  #1 (permalink)  
Antiguo 22/01/2020, 11:05
Avatar de MariaLSS  
Fecha de Ingreso: abril-2015
Ubicación: Madrid
Mensajes: 53
Antigüedad: 4 años, 10 meses
Puntos: 2
Asignar valor a un input type radio seleccionado de un campo de un input text

Hola
Tengo un formulario en el que hay dos botones de radio.
  • Si se clica el primero de ellos, el valor que voy a pasar a la base de datos es un texto que siempre va a ser igual y que corresponde al value del 'input type="text" id="fijo"'.
  • Si se clica la segunda opción, el usuario ha de introducir el texto que desee y que forzosamente va a ser variable.

Este es mi formulario:

Código HTML:
<form action="" method="post" name="formulario" id="formulario">
<table>
   <tr>
     <td>
	 
     <input type="radio" name="radioMod" id="modalidad1" value="Este texto será siempre el mismo" checked>
     </td>
     <td>
     <input name="modalidadE" type="text" id="fijo" class="form-control"  value="Este texto será siempre el mismo" size="60" readonly>
     </td>
   </tr>
   <tr>
     <td>
     <input type="radio" name="radioMod" id="modalidad2" value="">
     </td>
     <td><textarea name="modalidadE" id="tcontenidoMod" rows="3" class="form-control" placeholder="Escriba aquí su texto para Modalidad de Ensayo"></textarea>
	 	
     </td>
   </tr>
   <tr>
   <td></td>
   <td>
   <input name="enviar" type="submit" value="Enviar">
   </td>
   </tr>
  
 </table>
 </form> 
Lo que quiero hacer (y no sé cómo) es pasar el texto que el usuario escriba en el textarea id="tcontenidoMod" al valor del input type="radio" id="modalidad2".

Muchas gracias
__________________
Con dedicación, las pequeñas cosas crecen
  #2 (permalink)  
Antiguo 22/01/2020, 11:15
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.621
Antigüedad: 12 años
Puntos: 1104
Respuesta: Asignar valor a un input type radio seleccionado de un campo de un input t

eso se hace con javascript si lo quieres en el frontend,

Código Javascript:
Ver original
  1. document.getElementById('id1').value = document.getElementById('id2').value

Obvio no es copy-paste, has de implementar tu propio codigo

La otra es al recibir los datos en tu php

Código PHP:
Ver original
  1. $variable = $_POST['radioMod'] === 'xxx' ? $_POST['modalidadE'] : $_POST['modalidadE2'];

igual no es copy-paste pero con eso te doy una idea de que hacer y puedes armar tu propio codigo.
  #3 (permalink)  
Antiguo 22/01/2020, 11:29
Avatar de MariaLSS  
Fecha de Ingreso: abril-2015
Ubicación: Madrid
Mensajes: 53
Antigüedad: 4 años, 10 meses
Puntos: 2
Respuesta: Asignar valor a un input type radio seleccionado de un campo de un input t

Hola Arturo.

Gracias por tu respuesta pero no estoy segura de entenderla:

Código:
document.getElementById('id1').value = document.getElementById('id2').value
¿A qué id de mi código se refiere?

Gracias
__________________
Con dedicación, las pequeñas cosas crecen
  #4 (permalink)  
Antiguo 22/01/2020, 11:54
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.621
Antigüedad: 12 años
Puntos: 1104
Respuesta: Asignar valor a un input type radio seleccionado de un campo de un input t

se refiere al origen y destino :D

input de origen (el valor a copia) al de destino (el valor a reemplazar)

No le tengas miedo a tu proyecto, haz un backup y pícale por todos lados has todas las pruebas que necesites para despejar dudas.
  #5 (permalink)  
Antiguo 22/01/2020, 12:00
Avatar de MariaLSS  
Fecha de Ingreso: abril-2015
Ubicación: Madrid
Mensajes: 53
Antigüedad: 4 años, 10 meses
Puntos: 2
Respuesta: Asignar valor a un input type radio seleccionado de un campo de un input t

Cita:
Iniciado por ArturoGallegos Ver Mensaje
eso se hace con javascript si lo quieres en el frontend,

Código Javascript:
Ver original
  1. document.getElementById('id1').value = document.getElementById('id2').value

Obvio no es copy-paste, has de implementar tu propio codigo

La otra es al recibir los datos en tu php

Código PHP:
Ver original
  1. $variable = $_POST['radioMod'] === 'xxx' ? $_POST['modalidadE'] : $_POST['modalidadE2'];

igual no es copy-paste pero con eso te doy una idea de que hacer y puedes armar tu propio codigo.
__________________
Con dedicación, las pequeñas cosas crecen
  #6 (permalink)  
Antiguo 22/01/2020, 12:05
Avatar de MariaLSS  
Fecha de Ingreso: abril-2015
Ubicación: Madrid
Mensajes: 53
Antigüedad: 4 años, 10 meses
Puntos: 2
Respuesta: Asignar valor a un input type radio seleccionado de un campo de un input t

Perdón por mi torpeza. Intento abordarlo desde PHP orientada por tu respuesta que agradezco, Arturo. Este es mi código:

Código HTML:
<?php 

$variable = $_POST['radioMod'] === 'Este texto será siempre el mismo' ? $_POST['modalidadE'] : $_POST['modalidadE2'];
 ?>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Prueba 3</title>
</head>

<body>
<form action="" method="post" name="formulario" id="formulario">
<table>
   <tr>
     <td>
	 
     <input type="radio" name="radioMod" id="modalidad1" value="Este texto será siempre el mismo" checked>
     </td>
     <td>
     <input name="modalidadE" type="text" id="fijo" class="form-control"  value="Este texto será siempre el mismo" size="60" readonly>
     </td>
   </tr>
   <tr>
     <td>
     <input  type="radio" name="radioMod" id="modalidad2" value="<?php  echo $variable ?>">
     </td>
     <td><textarea name="modalidadE2" id="tcontenidoMod" rows="3" class="form-control" placeholder="Escriba aquí su texto para Modalidad de Ensayo"></textarea>
	 
	
     </td>
   </tr>
   <tr>
   <td></td>
   <td>
   <input name="enviar" type="submit" value="Enviar">
   </td>
   </tr>
  
 </table>
 </form>
</body>
</html> 
Lo que sucede todas las veces es que el valor que escribo en mi base de datos es el que corresponde al primero de los botones de radio ("Este texto será siempre el mismo") y jamás al que escribo en mi textarea (aunque el botón de radio correspondiente este checked.

Gracias por responder
__________________
Con dedicación, las pequeñas cosas crecen
  #7 (permalink)  
Antiguo 22/01/2020, 17:38
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.621
Antigüedad: 12 años
Puntos: 1104
Respuesta: Asignar valor a un input type radio seleccionado de un campo de un input t

Como dije no es solo copy-paste, el que pongas al inicio de tu documento el código que puse de ejemplo, no hará que funcione.

debes cambiar la lógica de tu código, donde y como, solo tu sabes ya que solo tu conoces la logica y sentido que tiene este código.




Nota: al abordarlo desde PHP, se procesa del lado del servidor y no es visible al usuario, esto sirve para cuando guardas en DB o mandas un mail , que esto te sirva de pista de donde debes modificar el código.
  #8 (permalink)  
Antiguo 23/01/2020, 05:02
Avatar de MariaLSS  
Fecha de Ingreso: abril-2015
Ubicación: Madrid
Mensajes: 53
Antigüedad: 4 años, 10 meses
Puntos: 2
Respuesta: Asignar valor a un input type radio seleccionado de un campo de un input t

En ningún momento he pretendido que fuera copy-paste.

Gracias de todos modos
__________________
Con dedicación, las pequeñas cosas crecen
  #9 (permalink)  
Antiguo 23/01/2020, 12:36
Avatar de MariaLSS  
Fecha de Ingreso: abril-2015
Ubicación: Madrid
Mensajes: 53
Antigüedad: 4 años, 10 meses
Puntos: 2
Respuesta: Asignar valor a un input type radio seleccionado de un campo de un input t

Hola
Como cuando pregunto lo que no sé agradezco que, quien sabe, apunte hacia la respuesta, os comento que logré resolverlo por mi propia vía.

Por si a alguien le sirve, copio aquí mi solución. El siguiente script es para dar valor al campo de texto que acompaña el primer botón de radio.


Código:
<?php
$modalidadE= "Este texto será siempre el mismo";
if(isset($_POST['modalidadE']) && $_POST["radioMod"] !== "0"){
$modalidadE= $_POST['modalidadE'];} 
?>
A continuación hago el insert en php. Lo que utilizo para el Insert no es el $_POST["modalidadE"] sino la variable $modalidadE

Aquí va el formulario
Código HTML:
<form action="" method="post" name="formulario" id="formulario">
<table>
   <tr>
     <td>
	 
     <input type="radio" name="radioMod" id="moda1" value="0" checked>
     </td>
     <td><input name="modalidadE" type="text" class="form-control" id="fijo" value="Este texto será siempre el mismo" size="60">
     </td>
   </tr>
   <tr>
     <td>
     <input type="radio" name="radioMod" id="moda2" value="1">
     </td>
     <td><textarea name="modalidadE" cols="60" rows="3" class="form-control" id="tcontenidoMod" placeholder="Escriba aquí su texto para Modalidad de Ensayo"></textarea>
	 
	
     </td>
   </tr>
   <tr>
   <td></td>
   <td>
   <input name="enviar" type="submit" value="Enviar">
   </td>
   </tr>
  
 </table>
 </form> 
Aquí va un pequeño script que habilita / deshabilita los campos de texto en función de dar clic en un radio o en otro:

Código:
<script>
$(document).ready(function(){
  $("input[name='radioMod']").change(function(){
    if($(this).val()==1){
      $("#fijo").attr("disabled",true);
      $("#tcontenidoMod").removeAttr("disabled");
    } else{
      $("#tcontenidoMod").attr("disabled",true);
      $("#fijo").removeAttr("disabled");
    }
  });
});
</script>
Si a alguien le sirve, genial. Incluso aunque haga copy-paste.
__________________
Con dedicación, las pequeñas cosas crecen

Última edición por MariaLSS; 24/01/2020 a las 03:53



La zona horaria es GMT -6. Ahora son las 07:00.