[ Foro de PHP ]
Me presento primero: Soy Jose, y estoy realizando un proyecto en php en el que me han surgido varias dudas.. La mayoría las estoy resolviendo yo solo, pero luego hay algunas que me traen más problemas, y esta, es una de ellas:
Cómo puedo hacer que un formulario me lleve a "varias" direcciones distintas? Lo que estoy haciendo es poner varios input tipo submit, y que el formulario me envie a una página intermedia "gestion.php", que ya procesa según el input que has pinchado.. ejemplo:
<form action="gestion.php" method="post">
<input type="submit" name="borrar" value="borrar"/>
<input type="submit" name="modificar" value="modificar"/>
<input type="submit" name="pagar" value="pagar"/>
</form>
y ya en gestion.php:
if ($_POST["modificar"])
{ acciones... }
if ($_POST["borrar"])
{ acciones... }
if ($_POST["pagar"])
{ acciones... }
Y hasta aquí todo bien, pero ahora me surge un problema.. cómo puedo hacer para que dentro de esas {acciones..} directamente me redirija automáticamente a borrar.php, modificar.php, o pagar.php...?
Y peor aún... Cómo puedo hacer para que ese borrar.php o modificar.php o pagar.php, reciba todas las variables que recibía la página intermedia gestion.php?
No se si me he explicado bien.. he leido que la forma más correcta sería con ajax y javascript.. el problema es que no tengo ni idea ni de javascript, ni de ajax.. En fin!! muchas gracias a todos por adelantado!!! :D
Vale, parece que he encontrado una forma mucho más sencilla, y que me soluciona todo el problema de golpe:
<form method="post">
<input type="submit" name="verPagos" onclick="this.form.action='listadoPagos.php'" value="Ver Pagos"/>
<input type="submit" name="participar" onclick="this.form.action='participar.php'" value="Participar"/>
Este código te crea dos botones, que te cambian el action de formulario al pulsarlos, y de esa forma me evito la página intermedia, y envia las variables por post... PERFECTO!! :D
Esa forma es buena, y soluciona la mayoría de problemas que comentabas. Hay otras muchas alternativas, como que no todo sea parte de un formulario, sino usar "button" que sean enlaces a las otras páginas, y pasar los datos por GET que necesites (que sólo debería ser el código del cliente o del elemento que sea).
Aun así, me tomo la libertad de hacerte un comentario. Como recomendación, en tu equipo de desarrollo usa una versión reciente de PHP y dile que te muestre todo tipo de Warnings. Verás que es fácil que te dé un Warning en órdenes como "if ($_POST["pagar"]) ..." porque si no has hecho clic en ese botón, esa variable no está definida. Es más seguro comprobar si existe la variable con "isset":
if (isset($_POST["pagar"])) ...
Gracias Nacho! Ya uso php superior a la versión 5, y uso isset para todo. Y sí, me da warnings por casi todo..
Al final lo solucioné como dije, y ya parece que se ha quedado perfecto... ;)
Ahora tengo problemas con los mails.. :P
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)