Enviar formulario al seleccionar una opción
Aplicar lo que vamos a explicar a continuación podría ser de utilidad aplicarlo cuando queremos implementar un sistema de encuesta y tenemos una pregunta con sus x opciones. Al seleccionar una de las opciones, se enviará el formulario sin necesidad de pulsar un botón.
En el ejemplo que vamos a ilustrar vamos a mostrar simplemente 2 opciones donde el usuario solo elegirá a que sexo pertenece.
Entonces, en el <body> deberíamos tener un formulario como el siguiente:
<form name="input" action="index.php" method="post"> <input type="radio" name="sex" value="Masculino" onchange="this.form.submit()"/> Masculino<br /> <input type="radio" name="sex" value="Femenino" onchange="this.form.submit()" /> Femenino<br /> </form>
Tenemos 2 inputs tipo «radio» con el mismo nombre, valor distinto y que al cambiar su valor el formulario se envía al servidor.
Tras enviar el formulario necesitaremos recoger los datos con php.
<?php
if (isset($_POST['sex'])) {
echo '<p>Has elegido el sexo '.$_POST['sex'].'</p>';
}
?>
En este caso simplemente imprimimos por pantalla la opción seleccionada en el caso de que la variable $_POST[‘sex’] exista.
que buen aporte muchas gracias
[…] Publisher More from Patrick Hammer: JQuery Web TIEMPO ASCENSION Sort Share http://www.jose-aguilar.com 0 minutes […]
Estimado José,
Exacto, ese era el problema. Sinembargo, lo que veo es una solución javascript que manda a guardar el formulario y después lo trae por POST. Lo que yo ando buscando es una solucion en Ajax que guarde la variable en POST o GET del radiobutton, sin tener que enviar los datos por submit y sin necesidad de recargar la página web, dado que lo que tengo es un formulario interno dentro de un formulario contenedor. Yo mandaré a guardar todos los datos del formulario contenedor hasta el final del mismo.
Por eso siempre te preguntaba por la función Ajax que yo no la veía en el archivo index.
Me puedes ayudar please.
Muchas gracias por todo.
Hola Mario,
he estado observando el código fuente de tu ejemplo y veo varios errores que deberías revisar:
1- El action del formulario debería ir a index.php o al nombre del archivo donde se vaya a ejecutar.
2- La extensión del archivo debe ser php. No funcionará en un index.html.
3- En la opción fenenina debes separar el atributo onchange
Prueba y me comentas,
Saludos
Hola Jose,
Lo he probado y nada, puedes revisarlo en http://elchatel.com/pruebaajax,
el código que tengo es el de tu ejemplo, pero yo no veo la llamada de la función Ajax, ayúdame te lo agradecería mucho.
=================
<html>
<head>
</head>
<body>
<form name="input" action="" method="post">
<input type="radio" name="sex" value="Masculino" onchange="this.form.submit()"/> Masculino<br />
<input type="radio" name="sex" value="Femenino"onchange="this.form.submit()" /> Femenino<br />
</form>
<?php
if (isset($_POST[‘sex’])) {
echo ‘<p>Has elegido el sexo ‘.$_POST[‘sex’].'</p>’;
}
?>
</body>
</html>
Hola Jose,
Lo he probado y nada, puedes revisarlo en http://elchatel.com/pruebaajax,
el código que tengo es el de tu ejemplo, pero yo no veo la llamada de la función Ajax, ayúdame te lo agradecería mucho.
=================
Masculino
Femenino
<?php
if (isset($_POST['sex'])) {
echo 'Has elegido el sexo ‘.$_POST[‘sex’].»;
}
?>
Hola amigo,
En este ejemplo de "Enviar formulario al seleccionar una opción", yo copie el código exacto en un archivo index, pero no me funcionó. Igual en éste ejemplo no veo la llamada a la función de Ajax en el código que pusiste.
Tienes el archivo con el código completo por favor?
Saludos
Mario Campos
Pues no se que puede estar pasando en tu index.php, podría ser que algo externo a este artículo afecte al código.
Intenta poner tanto el código php como el html en el body de tu index.php.
Saludos
Absolutely pent subject material, Really enjoyed examining.