Foros del Web » Programando para Internet » PHP »

Ayuda con formulario

Estas en el tema de Ayuda con formulario en el foro de PHP en Foros del Web. Hola a tod@s, Estoy cambiando la forma de enviar un formulario secillo que calcula un costo, si envío los datos por medio de un botón, ...
  #1 (permalink)  
Antiguo 04/06/2009, 12:23
Avatar de fmurga  
Fecha de Ingreso: abril-2008
Mensajes: 53
Antigüedad: 16 años
Puntos: 0
Pregunta Ayuda con formulario

Hola a tod@s,

Estoy cambiando la forma de enviar un formulario secillo que calcula un costo, si envío los datos por medio de un botón, sí funciona.

Si en lugar del botón le pongo una imágen, deja de funcionar.

Código que funciona:

Código:
<form action="pergolas.php" method="POST" name="costo">
            Largo: <input type="text" name="largo" size="6"> 
      (en Metros)<br /> 
      Ancho: <input type="text" name="ancho" size="6"> 
      (en Metros) <br />
      <input type="submit" name="calcular" value="Calcular">
      <br />
      <?php
if (isset($_POST[calcular]))
{
$largo = $_POST[largo];
$ancho = $_POST[ancho];
$total = (($largo * $ancho)* 750);
$estimado = number_format($total, 2, '.', ',');
echo "El Costo estimado es: Q.$estimado";
}
?>
Si lo pongo así, ya no funciona:

Código:
<form action="pergolas.php" method="POST" name="costo">
        Largo: <input type="text" name="largo" size="4" />
            (en Metros)<br />
            Ancho: <input type="text" name="ancho" size="4" />
            (en Metros) <br />
            <input type="image" src="images/calcular.jpg" alt="Calcular Costo" />
            <br />
            <?php
if (isset($_POST[calcular]))
{
$largo = $_POST[largo];
$ancho = $_POST[ancho];
$total = (($largo * $ancho)* 1025);
$estimado = number_format($total, 2, '.', ',');
echo "El Costo estimado es: Q.$estimado";
}
?>
Ya revisé y busqué por todos lados y todo me indica que así debería de funcionar.
No sé qué es lo que estoy haciendo mal, alguien me puede ayudar?

Gracias de antemano por su ayuda.
  #2 (permalink)  
Antiguo 04/06/2009, 12:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda con formulario

Es que, si te fijas, tu botón tenía como name calcular, por lo que pasabe el primer if. Te recomiendo que compruebes con isset directamente el campo que vayas a utilizar:
Código php:
Ver original
  1. if (isset($_POST['largo'])) {
  2.     /* Código */
  3. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 04/06/2009, 12:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Ayuda con formulario

trata escribiendo esto

<input type="image" src="images/calcular.jpg" alt="Calcular Costo" name="calcular" />
  #4 (permalink)  
Antiguo 04/06/2009, 12:28
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda con formulario

Hola, abimaelrc.

El input type="image" ya es una variante del tipo submit (envía el formulario, con información de las coordenadas en que se hizo click) por lo que no es necesario enviarlo manualmente con Javascript.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 04/06/2009, 12:29
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Ayuda con formulario

si me di cuenta por eso cambie al name cuando vi que tenia declarado el if abajo
  #6 (permalink)  
Antiguo 04/06/2009, 12:45
Avatar de fmurga  
Fecha de Ingreso: abril-2008
Mensajes: 53
Antigüedad: 16 años
Puntos: 0
De acuerdo Respuesta: Ayuda con formulario

Cita:
Iniciado por David el Grande Ver Mensaje
Es que, si te fijas, tu botón tenía como name calcular, por lo que pasabe el primer if. Te recomiendo que compruebes con isset directamente el campo que vayas a utilizar:
Código php:
Ver original
  1. if (isset($_POST['largo'])) {
  2.     /* Código */
  3. }
Le has dado justo en el clavo. Ha funcionado perfecto!

Gracias a todos por sus respuestas. Wow, llevaba casi 3 horas quemando cerebro y no le daba por dónde...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:52.