Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Agente Naranja en 12 Julio 2007, 19:17 pm



Título: Varios botones HTML, para distintos envios POST
Publicado por: Agente Naranja en 12 Julio 2007, 19:17 pm
Necesito ayuda con una cosilla, estoy creando un CMS, y cuando llego a las caracteristicas de escribir entradas, quiero algo similar al Wordpress que permite varias opciones como "guardar y seguir editando", "guardar", "publicar", pero la cosa es que no se como hacer para que el archivo PHP al que apunta el formulario (action="archivo.php") detecte el boton que se ha clickado, a menos que sea con javascript, y quiero hacerlo de ser posible independiente de javascript, solamente con HTML, por lo menos he intentado deshabilitando javascript y en Wordpres funciona igual.
Si alguien tiene alguna idea, enviando quizás algun input type="hidden" o algo similar, echadme una mano.
Gracias.


Título: Re: Varios botones HTML, para distintos envios POST
Publicado por: дٳŦ٭ en 13 Julio 2007, 00:38 am
Si el input de tu form se llama "guardar":

Código
  1. <?php
  2. if($guardar){
  3. aquí guardas el contenido del text area
  4. }
  5. ?>
  6.  

Ojo con las registrer globals (sino funciona ese código prueba con $guardar=$_POST['guardar'], si es por GET $guardar=$_GET['guardar']).

Saludos

Movido a PHP.


Título: Re: Varios botones HTML, para distintos envios POST
Publicado por: Agente Naranja en 13 Julio 2007, 17:43 pm
Gracias por moverlo, la verdad no sabía si estaba relacionado más con PHP o con HTML, pero bueno.

La cosa entonces es: Digamos que tengo dos inputs.

Código
  1. <input type="submit" name="guardar">
  2. <input type="submit" name="borrar">

Eso quiere decir, que si clicko "guardar", se me creará una variable $_POST['guardar'], y en cambio si clicko "borrar", se me creará una variable $_POST['borrar'].  Con cada botón clickado, se genera una variable POST con el name del boton, y de los demás botones no se crea variable, ¿Es así?


Título: Re: Varios botones HTML, para distintos envios POST
Publicado por: Sanjuu en 13 Julio 2007, 18:24 pm
Efectivamente, el formulario se envía al mismo sitio, lo que tendrías que vigilar al procesar el formulario es que variable es la que se ha mandado:

Código
  1.  
  2. if($_POST['guardar']){      // O $_GET según el modo de envío
  3.  
  4.     // guardas el resultado
  5.  
  6. }elseif($_POST['borrar']){
  7.  
  8.     // borras el resultado
  9.  
  10. }else{
  11.  
  12.    // tratamiento de error
  13.  
  14. };
  15.  
  16.