Foros del Web » Creando para Internet » HTML »

Duda con el envío de formularios

Estas en el tema de Duda con el envío de formularios en el foro de HTML en Foros del Web. Saludos. Tengo una web, en la que genero la impresión de navegar por pestañas gracias a divs y estilos. El problema es que en el ...
  #1 (permalink)  
Antiguo 24/03/2009, 12:34
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 12 años, 9 meses
Puntos: 1
Duda con el envío de formularios

Saludos.

Tengo una web, en la que genero la impresión de navegar por pestañas gracias a divs y estilos.

El problema es que en el mismo archivo tengo varios formularios.

¿Hay alguna manera de controlar cuando envío cada uno? ¿Habría que comprobarlo por medio de javascript?

Gracias por la información y saludos a todos.
  #2 (permalink)  
Antiguo 24/03/2009, 12:45
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.711
Antigüedad: 12 años, 7 meses
Puntos: 833
Respuesta: Duda con el envío de formularios

No entiendo lo que quieres decir exactamente .

Los formularios no se pueden anidar, por lo que necesariamente sabes cuál de los formularios fue enviado.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 24/03/2009, 12:47
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Duda con el envío de formularios

No, no son formularios anidados.

Simplemente digamos que en la misma página se van sucediendo.

Ahora mismo tengo el código así (más o menos)


Código HTML:
Ver original
  1. <form action="un sitio">
  2. ...
  3.    <input type="submit" />
  4. </form>
  5. ...
  6. <form action="otro sitio">
  7.    <input type="submit" />
  8. </form>
  9. ...
  #4 (permalink)  
Antiguo 24/03/2009, 13:00
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.711
Antigüedad: 12 años, 7 meses
Puntos: 833
Respuesta: Duda con el envío de formularios

Y, ¿qué es lo que quieres hacer con esos formularios o cuál es el problema con ellos? Ya que como te dijen, cada formulario apunta a un lugar diferente, así que no hay problema .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 24/03/2009, 13:01
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Duda con el envío de formularios

El problema es que al hacer submit siempre se me envían al action del primero.
  #6 (permalink)  
Antiguo 24/03/2009, 13:13
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.711
Antigüedad: 12 años, 7 meses
Puntos: 833
Respuesta: Duda con el envío de formularios

Es raro, no debería pasar si están correctamente separados. ¿Podrías poner un enlace a tu página o en su defecto el código HTML?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 24/03/2009, 13:30
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Duda con el envío de formularios

Hum... A la página no puedo, porque es una aplicación en PHP que se ejecuta en local mediante Easy PHP... Te podría pegar el código, pero son más de 500 líneas...

Así que trataré de comentarte y resumirte bien las zonas (quizás haya algún gambazo de PHP, pero sé que funciona bien) y te incluyo el código desde la segunda pestaña:

Código HTML:
Ver original
  1. //Segunda pestaña
  2. <div class="tabbertab<?php if (isset ($_GET["tab"]) && $_GET["tab"] == 2) echo " tabbertabdefault";?>">
  3.     <h2>Ventas por Productos</h2>
  4.  
  5.     <div class="container1 separator">
  6.         <h4>Realice su consulta</h4>
  7.         //Este es el segundo formulario... Inexplicablemente, todo me lo envía aquí
  8.         <form method="get" action="consultas_list.php" class="broom_form separator">
  9.         <input type="hidden" name="ctrl" value="show" />
  10.         <?php if (isset ($_GET["id_tipo"])){?>
  11.         <input type="hidden" name="id_tipo" value="<?php echo $_GET["id_tipo"];?>" />
  12.         <?php }?>
  13.         <?php if (isset ($_GET["id_producto"])){?>
  14.         <input type="hidden" name="id_producto" value="<?php echo $_GET["id_producto"];?>" />
  15.         <?php }?>
  16.         <?php
  17.             $sel_1 = "SELECT id_tipo, nombre FROM tipos_producto";
  18.             $que_1 = mysql_query ($sel_1, $dbh) or die ('I cannot execute the query because: ' . mysql_query () . '<br />And the query is: ' . $sel_1 . '<br />');
  19.         ?>
  20.         <fieldset class="container2">
  21.             <label for="id_tipo2" class="label2">
  22.                 <select id="id_tipo2" onchange="MM_jumpMenu('this',this,1)">
  23.                     <?php if (is_null ($_GET["id_tipo"]) || $_GET["id_tipo"] == "" || !isset($_GET["id_tipo"])){?>
  24.                     <option value="N" selected="selected">SELECCIONE TIPO DE PRODUCTO</option>
  25.                     <?php }?>
  26.                     <?php while ($aux = mysql_fetch_array ($que_1)){?>
  27.                     <option value="aplicacion.php?mod=3&id_tipo=<?php echo $aux["id_tipo"];?>&tab=2"<?php if (@$_GET["id_tipo"] == $aux["id_tipo"]){ echo ' selected="selected"'; }?>><?php echo strtoupper ($aux["nombre"]);?></option>
  28.                     <?php }?>
  29.                 </select>
  30.             </label>
  31.             <?php if (isset ($_GET["id_tipo"]) && !is_null ($_GET["id_tipo"]) && $_GET["id_tipo"] != ""){?>
  32.             <?php
  33.                 $sel_2 = "SELECT id_producto, nombre FROM productos WHERE id_tipo='" . $_GET["id_tipo"] . "'";
  34.                 $que_2 = mysql_query ($sel_2, $dbh) or die ('I cannot execute the query because: ' . mysql_query () . '<br />And the query is: ' . $sel_2 . '<br />');
  35.  
  36.                 $n = mysql_num_rows ($que_2);
  37.             ?>
  38.             <label for="id_producto" class="label2">
  39.                 <select id="id_producto" onchange="MM_jumpMenu('this',this,1)">
  40.                 <?php if (is_null ($_GET["id_producto"]) || $_GET["id_producto"] == "" || !isset($_GET["id_producto"])){?>
  41.                     <option value="N" selected="selected">SELECCIONE UN PRODUCTO</option>
  42.                     <?php }?>
  43.                     <?php while ($aux2 = mysql_fetch_array ($que_2)){?>
  44.                     <option value="aplicacion.php?mod=3&id_tipo=<?php echo $_GET["id_tipo"];?>&id_producto=<?php echo $aux2["id_producto"];?>&tab=2"<?php if (@$_GET["id_producto"] == $aux2["id_producto"]){ echo ' selected="selected"'; }?>><?php echo strtoupper ($aux2["nombre"]);?></option>
  45.                     <?php }?>
  46.                 </select>
  47.             </label>
  48.             <?php if (isset ($_GET["id_producto"]) && !is_null ($_GET["id_producto"]) && $_GET["id_producto"] != ""){?>
  49.             <label for="start-date1" class="label_calendar2">
  50.                 <span>Introduzca la fecha de inicio de consulta</span>
  51.                 <input name="startdate1" id="start-date1" readonly="readonly" class="date-pick" value="<?php echo date("j/n/Y");?>"/>
  52.             </label>
  53.             <label for="start-date2" class="label_calendar2">
  54.                 <span>Introduzca la fecha de fin de consulta</span>
  55.                 <input name="startdate2" id="start-date2" readonly="readonly" class="date-pick" value="<?php echo date("j/n/Y");?>"/>
  56.             </label>
  57.             <label for="Guardar" class="label2">
  58.                 <div class="button2"><div class="btn-inner"><span><em><button type="submit" id="Guardar"><img src="assets/img/icons/pencil.png" alt=""/>continuar consulta</button></em></span></div></div>
  59.             </label>
  60.         </fieldset>
  61.         </form>
  62.         //Fin del segundo formulario
  63.         <?php }?><?php }?>
  64.     </div><!--/end .container1-->
  65. </div><!--/end .tabbertab-->
  66. <div class="tabbertab<?php if (isset ($_GET["tab"]) && $_GET["tab"] == 3) echo " tabbertabdefault";?>">
  67.     <h2>Contratos de Productos</h2>
  68.  
  69.     <div class="container1 separator">
  70.         <h4>Realice su consulta</h4>
  71.         <fieldset class="container2">
  72.             <label for="id_tipo2" class="label2">
  73.             <?php
  74.                 $sel_2 = "SELECT id_producto, nombre FROM productos WHERE propio='s'";
  75.                 $que_2 = mysql_query ($sel_2, $dbh) or die ('I cannot execute the query because: ' . mysql_query () . '<br />And the query is: ' . $sel_2 . '<br />');
  76.  
  77.                 $n = mysql_num_rows ($que_2);
  78.             ?>
  79.             <label for="id_producto" class="label2">
  80.                 <select id="id_producto" onchange="MM_jumpMenu('this',this,1)">
  81.                 <?php if (is_null ($_GET["id_producto"]) || $_GET["id_producto"] == "" || !isset($_GET["id_producto"])){?>
  82.                     <option value="N" selected="selected">SELECCIONE UN PRODUCTO</option>
  83.                     <?php }?>
  84.                     <?php while ($aux2 = mysql_fetch_array ($que_2)){?>
  85.                     <option value="aplicacion.php?mod=3&id_producto=<?php echo $aux2["id_producto"];?>&tab=3"<?php if (@$_GET["id_producto"] == $aux2["id_producto"]){ echo ' selected="selected"'; }?>><?php echo strtoupper ($aux2["nombre"]);?></option>
  86.                     <?php }?>
  87.                 </select>
  88.             </label>
  89.             <?php if (isset ($_GET["id_producto"]) && !is_null ($_GET["id_producto"]) && $_GET["id_producto"] != ""){?>
  90.             <?php
  91.                 $sel_3 = "consulta de seleccion";
  92.                 $quer = mysql_query ($sel_3, $dbh) or die ('I cannot execute the query because: ' . mysql_error () . '<br />And the query is: ' . $sel_3 . '<br />');
  93.             ?>
  94.             <?php if ($num_reg > 0){?>
  95.             <table cellspacing="0" summary="table" class="broom_table">
  96.                 <thead>
  97.                     <tr>
  98.                         <th>Contrato</th>
  99.                         <th>cliente</th>
  100.                         <th>vendedor</th>
  101.                         <th><img src="assets/img/icons/factura_cobrada.png" title="Contrato Cobrado" alt="Contrato Cobrado" /></th>
  102.                         <th><img src="assets/img/icons/factura_emitida.png" title="Facturada emitida" alt="Facturada emitida" /></th>
  103.                         <th><img src="assets/img/icons/propaganda.png" title="Propaganda Enviada" alt="Propaganda enviada" /></th>
  104.                         <th>Cobrado</th>
  105.                     </tr>
  106.                 </thead>
  107.                 <tbody>
  108.                     <?php while ($x = mysql_fetch_array ($quer)){?>
  109.                     <tr<?php if ($i % 2 == 0){echo " class=\"odd\"";}else{echo " class=\"even\"";}?>>
  110.                         <td onclick="document.location='aplicacion.php?mod=5&id_contrato=<?php echo $x["id_contrato"];?>&action=view'"><?php echo $x["nomCont"];?></td>
  111.                         <td onclick="document.location='aplicacion.php?mod=5&id_contrato=<?php echo $x["id_contrato"];?>&action=view'"><?php echo $x["nombre"];?></td>
  112.                         <td onclick="document.location='aplicacion.php?mod=5&id_contrato=<?php echo $x["id_contrato"];?>&action=view'"><?php echo $x["tipo"];?></td>
  113.                         <?php if (!isset ($_SESSION["user_only_r"])){?>
  114.                         <td><input type="checkbox" readonly="readonly" name="pagado"<?php if ($x["cobrado"] == "s"){ echo " checked=\"checked\"";}?> onchange="refresco('cob','<?php echo $x["id_contrato"];?>','<?php echo $x["cobrado"];?>')" /></td>
  115.                         <?php }else{?><td><?php if ($x["cobrado"] == "s"){ echo "SI";}else {echo "NO";}?></td><?php }?>
  116.                         <?php if (!isset ($_SESSION["user_only_r"])){?>
  117.                         <td><input type="checkbox" readonly="readonly" name="facturado"<?php if ($x["facturado"] == "s"){ echo " checked=\"checked\"";}?> onchange="refresco('fac','<?php echo $x["id_contrato"];?>','<?php echo $x["facturado"];?>')" /></td>
  118.                         <?php }else{?><td><?php if ($x["facturado"] == "s"){ echo "SI";}else {echo "NO";}?></td><?php }?>
  119.                         <?php if (!isset ($_SESSION["user_only_r"])){?>
  120.                         <td><input type="checkbox" readonly="readonly" name="propaganda"<?php if ($x["propaganda"] == "s"){ echo " checked=\"checked\"";}?> onchange="refresco('pro','<?php echo $x["id_contrato"];?>','<?php echo $x["propaganda"];?>')" /></td>
  121.                         <?php }else{?><td><?php if ($x["propaganda"] == "s"){ echo "SI";}else {echo "NO";}?></td><?php }?>
  122.                         <td>
  123.                                                         //Estos son los formularios que se me envían al action del segundo formulario, en lugar de ir a su propio action
  124.                             <form action="aplicacion.php" method="post" name="<?php echo $i + 1;?>" id="<?php echo $i + 1;?>">
  125.                                 <input type="hidden" name="mod" value="tres" />
  126.                                 <input type="hidden" name="ctrl" value="prod" />
  127.                                 <input type="hidden" name="id_producto" value="<?php echo $_GET["id_producto"];?>" />
  128.                                 <input type="hidden" name="id_contrato" value="<?php echo $x["id_contrato"];?>" />
  129.                                 <input type="text" name="cobrado" value="<?php echo $x["cobrado"];?>" size="3" />&nbsp;
  130.                                 <input type='image' src='assets/img/icons/refresh.png' border='0' style='cursor:pointer;' title='actualizar la cantidad' onclick='document.getElementById("<?php echo $i + 1;?>").submit();' />
  131.                             </form>
  132.                                                         //Fin del formulario de marras
  133.                         </td>
  134.                     </tr>
  135.                     <?php $i++;}?>
  136.                 </tbody>
  137.             </table>
  138.             <?php }?>
  139.         </fieldset>
  140.         <form>
  141.         <?php }?>
  142.     </div><!--/end .container1-->
  143. </div><!--/end .tabbertab-->
  #8 (permalink)  
Antiguo 24/03/2009, 13:32
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.711
Antigüedad: 12 años, 7 meses
Puntos: 833
Respuesta: Duda con el envío de formularios

Hola, Koden.

Con el código PHP será difícil ver el problema.

Haz lo siguiente, ejecuta el servidor Apache, ejecuta tu página y en tu navegador ve a la opción "Ver Código Fuente", elige las partes que consideres importante para entender tu problema y pegas aquí.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 24/03/2009, 13:47
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Duda con el envío de formularios

Gracias por tu ayuda, David el Grande.

Revisando el código fuente que me devolvía el Apache al navegador me percaté de que el <fieldset> del segundo formulario no estaba cerrado debido a una mala colocación de las llaves de cierre de un script PHP.

¡Solucionado!
  #10 (permalink)  
Antiguo 24/03/2009, 13:53
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.711
Antigüedad: 12 años, 7 meses
Puntos: 833
Respuesta: Duda con el envío de formularios

Me alegra que lo hayas solucionado.

Sin duda, revisar el Código Fuente devuelto es una buena forma de depurar.

Saludos y hasta la próxima .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 23:12.