Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: LoboBlanco en 12 de Febrero 2017, 12:11
-
Hola, estoy intentando desde php especificar la respuesta que estaria preselecionada en un formulario tipo control radio. Decidirlo con una variable. A veces se preseleccionaria la respuesta 1, otras veces la 2, etc.
Si lo hago directamente no tengo problema
<html>
<head>
<title>Control Radio mejorado</title>
</head>
<body>
<form action="FORMULARIO_control_radio_mejoradob.php" method="post">
<input type="radio" name="radio1" value="linea1" >Linea1 <br>
<input type="radio" name="radio1" value="linea2" >Linea2 <br>
<input type="radio" name="radio1" value="linea3" checked="checked" >Linea3 <br>
<input type="radio" name="radio1" value="linea4">Linea4 <br>
<br>
<input type="submit" name="Confirmar" value="Enviar Respuesta">
</form>
</body>
</html>
Resultado: Linea3 sale señalada, aunque el usuario puede cambiar la opción elegida.
*
Si intento hacerlo desde php no lo consigo
<html>
<head>
<title>Control Radio mejorado</title>
</head>
<body>
<?php
$Respuesta_preseleccionada=3;
?>
<form action="FORMULARIO_control_radio_mejoradob.php" method="post">
<input type="radio" name="radio1" value="linea1" >Linea1 <br>
<input type="radio" name="radio1" value="linea2" >Linea2 <br>
<input type="radio" name="radio1" value="linea3" name="linea3"
<?php
if ($Respuesta_preseleccionada==3)
{
checked="checked";
}
?>
> Linea3 <br>
<input type="radio" name="radio1" value="linea4">Linea4 <br>
<br>
<input type="submit" name="Confirmar" value="Enviar Respuesta">
</form>
</body>
</html>
-
Con lo que Pedro me soluciono en otro tema (muchas gracias Pedro :) ) he avanzado un poco, pero sin conseguir solucionarlo. No me da error, pero no funciona bien.
Si alguien pudiera echarme una mano me vendría muy bien, gracias
He llegado a este codigo:
<html>
<head>
<title>Control Radio mejorado</title>
</head>
<body>
<?php
$Respuesta_preseleccionada=1;
?>
<form action="FORMULARIO_control_radio_mejoradob.php" method="post">
<input type="radio" name="radio1" value="linea1" checked=<?php if ($Respuesta_preseleccionada===1) {echo '"checked"'; } else {echo"";} ?> >Linea1 <br>
<input type="radio" name="radio1" value="linea2" checked=<?php if ($Respuesta_preseleccionada===2) {echo '"checked"'; } else {echo"";} ?> >Linea2 <br>
<input type="radio" name="radio1" value="linea3" checked=<?php if ($Respuesta_preseleccionada===3) {echo '"checked"'; } else {echo"";} ?> >Linea3 <br>
<input type="radio" name="radio1" value="linea4" checked=<?php if ($Respuesta_preseleccionada===4) {echo '"checked"'; } else {echo"";} ?> >Linea4 <br>
<br>
<input type="submit" name="Confirmar" value="Enviar Respuesta">
</form>
<?php
echo "Respuesta preseleccionada: " .$Respuesta_preseleccionada;
?>
</body>
</html>
Resultado
Sale marcada la opción Linea4, a pesar de querer conseguir que saliera marcada la 1ª opción: Linea1. Y de que la variable $Respuesta_preseleccionada tiene el valor 1.
¿Por qué puede ser?
-
Buenas LoboBlanco.
Al atributo checked no tienes que darle ningún valor, en el radiobutton en el que aparezca será seleccionado.
<input type="radio" name="radio1" value="linea1" checked />
y tu código podría quedar así:
<html>
<head>
<title>Control Radio mejorado</title>
</head>
<body>
<?php
$Respuesta_preseleccionada=3;
?>
<form action="pruebas.php" method="post">
<input type="radio" name="radio1" value="linea1" <?php if ($Respuesta_preseleccionada==1) {echo "checked"; } else {echo"";} ?> >Linea1 <br>
<input type="radio" name="radio1" value="linea2" <?php if ($Respuesta_preseleccionada===2) {echo "checked"; } else {echo"";} ?> >Linea2 <br>
<input type="radio" name="radio1" value="linea3" <?php if ($Respuesta_preseleccionada===3) {echo "checked"; } else {echo"";} ?> >Linea3 <br>
<input type="radio" name="radio1" value="linea4" <?php if ($Respuesta_preseleccionada===4) {echo "checked"; } else {echo"";} ?> >Linea4 <br>
<br>
<input type="submit" name="Confirmar" value="Enviar Respuesta">
</form>
<?php
echo "Respuesta preseleccionada: " .$Respuesta_preseleccionada;
?>
</body>
</html>
Saludos. ;D
-
Muchas gracias de nuevo, Pedro :D
Funciona genial, me viene estupendamente para lo que estoy haciendo :)