Ver Mensaje Individual
  #6 (permalink)  
Antiguo 11/06/2015, 15:30
Avatar de marlanga
marlanga
 
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 4 meses
Puntos: 206
Respuesta: Sistema de votaciones

El formulario debería tener ésta pinta:

<form method="POST" action="nuevo_voto.php">
<select name='voto'>
<option value="Excelente">Excelente</option>
<option value="Muy Bueno">Muy Bueno</option>
<option value="Bueno">Bueno</option>
<option value="Regular">Regular</option>
<option value="Malo">Malo</option>
</select>
<input type="hidden" name="id_plato" value="<?php echo $row['id_plato']; ?>" />
<input type="submit" value="votar" />
</form>

Y en tu nuevo_voto.php tendrás $_POST['id_plato'] y $_POST['voto'].

Si no quieres hacer redirección, necesitarás llamadas AJAX de javascript.
Si tienes ésta forma, es fácil hacer que javascript capture el evento submit del formulario, y hacer que lo reenvíe con ajax sin refrescar la página. jQuery por ejemplo hace aún más fácil ese trabajo.

Por cierto, al meter en el input hidden del formulario el id_plato, presenta un problema de seguridad. ¿Qué pasa si alguien me cambia a mano el value de ese campo, y me manda un ID que no debería? Para resolver ese problema, se suele crear otro hidden justo debajo del de id_plato, y se guarda en él el id_plato "codificado" usando alguna contraseña secreta que sólo el servidor sabe. Luego, en la página nuevo_voto.php, el servidor coge el id del plato, la codifica usando la misma contraseña, y compara esa cadena con la que le llega en ese campo hidden nuevo. Si son iguales, es que el ID no ha sido modificado a mano por el cliente y se puede realizar el voto. Si son distintos, entonces no haces nada porque te han manipulado los datos del formulario.

Última edición por marlanga; 11/06/2015 a las 15:36