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>
<?phpecho "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>
<?phpecho "Respuesta preseleccionada: " .$Respuesta_preseleccionada;?>
</body>
</html>
Saludos. ;D