PHP - Ayuda: Formulario con botones radio

   
Vista:

Ayuda: Formulario con botones radio

Publicado por Ramon (2 intervenciones) el 21/10/2009 21:30:52
Hola, estoy aprendiendo php y para ello he decido crear una quiniela en php, no me va mal del todo.... pero me he quedado atrancado en parte del codigo ,hos explico....

Index.php lee la base de datos y coje los partidos de la jornada, los muestra y genera para cada partido 2 botones radio (uno para votar que gana el local y otro para votar por el visitante). Hasta hay todo va bien... Pero el problema esque al enviar el formulario, no me envia los valores de los campos radio.... Envia otra variable que tengo por hay en un campo oculta ($numero) y todo, pero lo del campo radio no....Se que he hecho algo mal por hay pero como soy nobato no entiendo el que....

Código:

<?
$categoria=Alevin;
$conexion = mysql_connect('localhost', 'root', 'root'); // se conecta con el servidor

mysql_select_db('quiniebs', $conexion); // selecciona la base de datos
$tabla = mysql_query("SELECT * FROM calendario WHERE categoria='$categoria' AND resultado=''");
$numero = mysql_num_rows($tabla); // obtenemos el número de partidos
Echo "Esta jornada hay $numero partidos<br>";
Echo "<FORM ACTION='votar.php' method='post'><label>";
Echo "<INPUT TYPE='hidden' NAME='numero' VALUE='$numero'> ";
Echo "<table border='1'>
<tr>
<td>ID</td>
<td>Local</td>
<td>-</td>
<td>Visitante</td>
</tr>";
for ($i = 1; $registro = mysql_fetch_array($tabla); $i++) {

echo "<tr><td>" . $registro['id_partido'] . "</td>";

echo "<td><input name='id_partido[$i]' type='radio' value='local' />" . $registro['local'] . "</td>";

echo "<td>-</td>";

echo "<td><input name='id_partido[$i]' type='radio' value='visitante' />" . $registro['visitante'] . " </td>";

echo "</tr>";

if ($i == $numero){
Echo "<td><INPUT TYPE='submit' NAME='accion' VALUE='Grabar'></form></label></td> ";
}
}

mysql_free_result($tabla); // libera los registros de la tabla

mysql_close($conexion); // cierra la conexion con la base de datos
?>


Gracias de ante mano!
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

RE:Ayuda: Formulario con botones radio

Publicado por Diego Romero (1450 intervenciones) el 22/10/2009 00:07:52
Tal como lo has hecho tienes que adivinar de qué ID se trata.
Cuando tienes radios y dos o más de ellos tienen el mismo name se convierten en mútuamente excluyentes entre sí, para saber cuál seleccionó el usuario debes inspeccionar la variable $_POST["nombre_del_radio"] la cual contendrá el value del radio seleccionado. Pero en tu caso el name del radio es un ID extraido de la base de datos y no tienes forma de saber cuál es el índice en el $_POST.

La solución que propongo es que además de crear los dos radios crees un tercer input tipo hidden con value igual al ID que se trate y con un name predecible, por ejemplo números crecientes empezando con el cero. Podrías usar el índice de ese for que tienes ahí para eso.
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

RE:Ayuda: Formulario con botones radio

Publicado por Ramón (2 intervenciones) el 22/10/2009 00:10:02
Gracias por la respuesta, pero no me ha quedado claro.... Aunque cree un campo hidden con la id del partido, como extraigo el valor del radio?
Un saludo y gracias!
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

RE:Ayuda: Formulario con botones radio

Publicado por Diego Romero (1450 intervenciones) el 22/10/2009 03:55:26
Mira, el action del form que estás usando apunta al script votar.php ¿cierto?, pues en ese script al principio de todo pon esto:

<?php
echo "<pre>";
var_dump($_POST);
echo "</pre>";
?>

Eso te dará la pista de qué es lo que tienes que hacer.

Y un consejo, si vas a usar una característica que no sabes o no estás seguro de lo que hace o cómo lo hace, haz pruebas sencillas antes de implementarla en el producto final.
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