Ayuda con formulario

Hola que tal
Resulta que tengo varios formularios en una misma página y quiero que cuando oprima un botón, me mande a otro formulario de otra página, pero no hace nada el action si lo tengo bn, te paso mi código aver si me puedes echar una manita
<form id="form2" name="form2" method="post" action="confirmar_agregado.php">
          <label for="Submit">¿Desea agregar una operacion?</label>
          <input type="submit" name="si" value="SI" id="si" />
          <label for="Submit"></label>
          <input type="submit" name="no" value="NO" id="no" />
</form>
<?
        if(isset($_REQUEST[si])){
        ?>
<div id="Layer1">
  <form id="form1" name="form1" method="post" action="confirmar_agregado.php">
    <label for="textfield">
<div align="center">
<p><strong>Ingrese los datos de la operacion </strong></p>
<div align="left">Numero     
        <input type="text" name="no_oper" id="no_oper" />
  </div>
</div>
</label>
<p>
      <label for="label">Descripcion </label>
      <input type="text" name="desc_oper" id="label" />
</p>
<p>
      <label for="label2">Costo</label>
      <input type="text" name="costo" id="label2" />
    </p>
<p>
      <input type="submit" name="agregar_oper" value="Agregar Operacion" id="agregar_oper" />
    </p>
</form>
</div>
<?
        }
        }
 ?>
Por lo pronto lo tendré que hacer en una página diferente pero así no la necesito pues quiero ponerle un ciclo que cuando el cliente diga que no pues se sale, y si es si, me va abrir el mismo formulario, para seguir llenándolo, ¿o hay otra solución más rápida?

1 respuesta

Respuesta
1
Supongo que confirmar_agregado.php es este código que me has pasado, es decir, que al terminar de introducir datos lo que quieres es que se vuelva a cargar esta página. Te pongo comentarios en el código, pero te explico:
- No hace falta el "action" en el primer "form", si se pulsa sí se muestra el formulario para rellenar los datos, si se pulsa no... pues lo que quieras poner en el "else" que te he incluido.
- En el segundo si puedes poner el "action", así al introducir vuelve otra vez a consultar
- Reduce código siempre que puedas, te quedará mucho más claro (yo te he reducido bastante).
- Usa siempre "<?php" para abrir, en lugar de "<?" solamente. En ocasiones funciona de las dos formas, pero te puedes encontrar un día con que tu código ha dejado de funcionar. Acortar así solo lleva a tener problemas, cíñete siempre que puedas a los estándares.
- Te sobraba un cierre de llave, supongo que pegaste parte del código nada más y se te olvidó quitarla.
Código:
<form id="form2" name="form2" method="post"> <!-- No hace falta "action" aquí-->
<p>¿Desea agregar una operacion?</p>
<input type="submit" name="si" value="SI" id="si" />  
<input type="submit" name="no" value="NO" id="no" /> 
</form>
<?php 
if(isset($_REQUEST[si]))

?>
<div id="Layer1"> 
<form id="form1" name="form1" method="post" action="confirmar_agregado.php">
<p align="center"><strong>Ingrese los datos de la operacion </strong></p>
<p>Numero: <input type="text" name="no_oper" id="no_oper" /></p>
<p>Descripción: <input type="text" name="desc_oper" id="label" /></p>
<p>Costo: <input type="text" name="costo" id="label2" /> </p>
<input type="submit" name="agregar_oper" value="Agregar Operacion" id="agregar_oper" />  
</form> 
</div>
<?php //acostúmbrate a poner siempre <?php y no solo <? 
   } // Te sobraba una llave de cierre
else
{
//lo que quieras hacer si pulsa no
}
?>
Hola
Pues hice lo que me dijiste pero
Aunque no m marca error no me muestra el formulario y así me pasa siempre que quiero poner más formularios dentro de los if's no se si sean los if`s aunque aparentemente mi lógica esta bn
Este es mi código:
<?php
if(isset( $_REQUEST['agregar_oper']))
    {
    $link = mysql_connect("localhost", "root", "password") or die("ERROR AL INTENTAR CONECTAR");
      mysql_select_db("henniges", $link) or die ("ERROR AL INTENTAR SELECCIONAR BASE DE DATOS");
    $_SESSION['no_oper'] = $_REQUEST['no_oper'];
    $_SESSION['desc_oper'] = $_REQUEST['desc_oper'];
    $_SESSION['costo_oper'] = $_REQUEST['costo'];
    echo $_SESSION['no_oper'];
    echo $_SESSION['desc_oper'];
    echo $_SESSION['costo_oper'];
    $query = "update operaciones set no_operacion = ".$_SESSION['no_oper'].",desc_operacion = '".$_SESSION['desc_oper']."', costo =".$_SESSION['costo_oper'] ." where no_parte = '".$_SESSION['no_parte']."'";  
    echo $query;
          mysql_query($query, $link) or die (mysql_error());
        ?>
<form id="form2" name="form2" method="post">
<p>¿Desea agregar una operacion?</p>
<input type="submit" name="si" value="SI" id="si" />  
<input type="submit" name="no" value="NO" id="no" />
</form>
<?php
if(isset($_REQUEST['si']))
{
?>
<div id="Layer1">
<form id="form1" name="form1" method="post" action="confirmar_agregado.php">
<p align="center"><strong>Ingrese los datos de la operacion </strong></p>
<p>Numero: <input type="text" name="no_oper" id="no_oper" /></p>
<p>Descripción: <input type="text" name="desc_oper" id="label" /></p>
<p>Costo: <input type="text" name="costo" id="label2" /> </p>
<input type="submit" name="agregar_oper" value="Agregar Operacion" id="agregar_oper" />  
</form>
</div>
<?php //
   } //
else
{
//lo que quieras hacer si pulsa no
}
}
 ?>
Gracias y saludos
No te lo muestra porque tienes mal el cierre de llave del primer "if". Si lo cierras al final como estás haciendo
if(isset( $_REQUEST['agregar_oper']))
Siempre es false, por lo que no entra en el código y lo da por terminado. El cierre de ese "if" va aquí:
echo $query; 
mysql_query($query, $link) or die (mysql_error());

} //aquí el cierre del primer if "}", y sobra la última llave "}"
?>

Así si la primera vez entra directamente al formulario sin evaluar las variables de sesión, si se ha pulsado "Sí" añade los valores a la base de datos y vuelve a mostrar el formulario.
Supongo que abrirás la sesión al principio del código, ya que no lo veo en este código.
Gracias, no finalizo la pregunta porque aun no lo pruebo, ando haciendo otra prueba, ¿y pues creo que se vale una sola pregunta y no varias verdad?
pero Gracias, checare los if y ya vere resultados
Gracias por tu paciencia
Acostúmbrate a cerrarlas si ves que se alargan y se trata de otra cosa, aunque sea del mismo formulario, no sé como te irá el server a ti, pero yo a veces no puedo ni entrar, y si el tema ha sido largo le cuesta cargar.
Y por cierto, no te preocupes, yo si lo pruebo antes de ponerlo :) no vaya a ser que se me olvide una coma y cuando lo pruebes tú no funcione y te desesperes buscando el problema. Lo pruebo todo en tres navegadores.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas