Foros del Web » Programando para Internet » PHP »

Ayuda Enviar varios formularios con un solo submit

Estas en el tema de Ayuda Enviar varios formularios con un solo submit en el foro de PHP en Foros del Web. Hola a todos, Estoy tratando de encontrar una solucion para el envio de varios formularios con un solo boton submit. Los formularios se crean con ...
  #1 (permalink)  
Antiguo 06/07/2010, 09:47
 
Fecha de Ingreso: julio-2008
Ubicación: BOGOTA
Mensajes: 81
Antigüedad: 11 años, 5 meses
Puntos: 1
Ayuda Enviar varios formularios con un solo submit

Hola a todos,
Estoy tratando de encontrar una solucion para el envio de varios formularios con un solo boton submit. Los formularios se crean con un ciclo for y los name los distingo usando el valor "i" del ciclo:
for(i=0....i++)
form name="forma.$i"
input name="codigo.$i" type=text value="codigo_identificacion"

De esta forma el ciclo php me crea hasta un total de 10 formularios diferenciados por el name y un input text que corresponde a un código de identificacion que se ingresa previamente. Ahora lo que necesito hacer es enviar el total de formularios con un solo boton ya que no se requiere que cada formulario tenga su submit sino evitarse los 10 pasos con uno solo.

Hasta el momento no se me ocurre una solucion o método para hacer este requerimiento... agradezco infinitamente quien pueda colaborarme...
gracias desde Colombia.
  #2 (permalink)  
Antiguo 06/07/2010, 10:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 8 meses
Puntos: 2534
Respuesta: Ayuda Enviar varios formularios con un solo submit

no puedes hacer lo que dices... al menos no enviar varios formularios con un solo submit...

pero si colocas todos los inputs, que deben ser nombrados distinto dentro de un solo formulario funciona igual!! ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/07/2010, 10:17
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 10 años, 2 meses
Puntos: 10
Respuesta: Ayuda Enviar varios formularios con un solo submit

Lo haces de tal manera que todos los inputs estén dentro de un form, y el submit lo envía todo a una página donde se procesa, y ahi vuelves a hacer un for para ir comprobando datos. Además, (no se que quieres hacer) te podrías ser útli pasar también la variable i por sesión o en un oculto.
  #4 (permalink)  
Antiguo 06/07/2010, 10:27
 
Fecha de Ingreso: julio-2008
Ubicación: BOGOTA
Mensajes: 81
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Ayuda Enviar varios formularios con un solo submit

Por supuesto,, en eso pensé, la cuestion es que por cada formulario se envian el identificador que es unico y 12 variables mas que son unos radio button con valor "si" o "no". En total se crearian 120 variables.

Encontre una funcion de javascript que envía formularios sin boton submit pero lo que pasa es que solo me envia los 2 primeros formularios.
  #5 (permalink)  
Antiguo 06/07/2010, 10:30
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 10 años, 2 meses
Puntos: 10
Respuesta: Ayuda Enviar varios formularios con un solo submit

Intenta trabajar con bucles, a ver que ocurre.

Es decir, en lugar de manejar 120 variables, maneja nombres de campos consecutivos, por ejemplo 'a1','b1','a2','b2', etc. y usa la gran cantidad de bucles que ofrece php
  #6 (permalink)  
Antiguo 06/07/2010, 10:37
 
Fecha de Ingreso: julio-2008
Ubicación: BOGOTA
Mensajes: 81
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Ayuda Enviar varios formularios con un solo submit

Hola markmb, voy a contarte la estructura a manejar:
en la pagina consecutivos.php hay un formulario que recoge 10 campos de texto donde se ingresan 10 codigos de identificacion los cuales al hacer el submit muestra en pantalla la informacion correspondiente a cada codigo que en este caso es el estado de unos cilindros de gas en donde se muestran el estado de 12 pruebas que les realizan a cada cilindro y el radiobutton muestra si paso la prueba o no, y el usuario puede cambiar estos valores a "si" o "no" refiriendose a si paso la prueba o no.
De esta forma cada codigo de identificacion y el estado de pruebas se muestran en pantalla.
los name de las pruebas son prueba1 hasta 12 por cada formulario.

Lo que estoy tratando de pensar es en que al dar click a un solo boton, se procese cada formulario en cola o algo asi, pero la verdad estuve cerca con javascript pero nada...Voy a tratar de estructurar tu idea,, gracias.
  #7 (permalink)  
Antiguo 06/07/2010, 10:41
 
Fecha de Ingreso: julio-2008
Ubicación: BOGOTA
Mensajes: 81
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Ayuda Enviar varios formularios con un solo submit

Estoy usando mysql,, cuando se da enviar debe hacer un query en el cual se actualiza la seleccion de pruebas correspondiente al código del cilindro. De esta forma el submit lo que hace es "update cilindros set prueba1=$prueba1, prueba2=$prueba2.....prueba12=$prueba12 where consecutivo = $cod_identificador"
  #8 (permalink)  
Antiguo 06/07/2010, 10:48
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 10 años, 2 meses
Puntos: 10
Respuesta: Ayuda Enviar varios formularios con un solo submit

Si lo he entendido bien, podrías hacer esto:
(esto sería la página a mi entender)

-------------------------------------------------------------------------
Tanque | Cuadro del identificador |
Prueba 1: si /no (hasta 12 pruebas)

(hasta 10 tanques)

|Enviar|

--------------------------------------------------------------------------

Entonces, cuando creas el formulario, podrías crear un array de la a a la z y hacer así:

|Cuadro del identificador| -> a0
Prueba 1 -> a1 (valor sí o valor no)
etc.

Siguiente tanque -> b0
Prueba 1 -> b1
etc.

Y a la hora de verificar, coges de nuevo el array del alfabeto y haces algo así:

foreach ($alfabeto as $letra){
$cod_identificador = $_POST[$letra.'0'];
for ($i = 0; $i<12; $i++){
$dato = 'prueba'.$i;
$$dato = $_POST[$letra.$i];
/*Se crean las variables $prueba1,$prueba2,etc.*/
}
update cilindros set prueba1=$prueba1, prueba2=$prueba2.....prueba12=$prueba12 where consecutivo = $cod_identificador
}
  #9 (permalink)  
Antiguo 06/07/2010, 11:00
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 10 años, 2 meses
Puntos: 10
Respuesta: Ayuda Enviar varios formularios con un solo submit

Me acabo de dar cuenta:

No sería de la A a la Z, sino de la A a la J (10 letras)
  #10 (permalink)  
Antiguo 06/07/2010, 11:01
 
Fecha de Ingreso: julio-2008
Ubicación: BOGOTA
Mensajes: 81
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Ayuda Enviar varios formularios con un solo submit

hola markmb,, creo que ya estoy viendo la luz..jaajja...pero lo unico que no entendí bien es lo de

|Cuadro del identificador| -> a0
Prueba 1 -> a1 (valor sí o valor no)
etc.

Siguiente tanque -> b0
Prueba 1 -> b1

Esto va en el form?? osea el form tiene su action y sus input que en el caso es un text (identificador) y los radio button (prueba1--12).

ire escribiendo el codigo por lo pronto...muchas gracias
  #11 (permalink)  
Antiguo 06/07/2010, 11:04
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 10 años, 2 meses
Puntos: 10
Respuesta: Ayuda Enviar varios formularios con un solo submit

sería:
<form (lo que venga aquí)>
Identificador: <input type="text" name="a0">
Prueba 1:
Sí <input type="radio" name="a1" value="si">
No <input type="radio" name="a1" value="no">

etc.

</form>

Me refería a eso
  #12 (permalink)  
Antiguo 06/07/2010, 11:09
 
Fecha de Ingreso: julio-2008
Ubicación: BOGOTA
Mensajes: 81
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Ayuda Enviar varios formularios con un solo submit

Markmb,, Se me ocurre esto: tu crees que se pueda actualizar la base de datos automaticamente cuando el usuario vaya cambiando los inputs??? osea cuando la pagina imprima en pantalla los formularios con su identificador y el valor de pruebas si el usuario le da no o si en cualquiera haga el update automaticamente y finalmente no mostrar un boton input sino simplemente un boton finalizar que me lleve a la pagina anterior cuando haya terminado los cambios.

Creo que esto es con ajax?? te agradezco si sabes de esto.
  #13 (permalink)  
Antiguo 06/07/2010, 11:11
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 10 años, 2 meses
Puntos: 10
Respuesta: Ayuda Enviar varios formularios con un solo submit

Te lo voy a decir muy claramente:

NO TENGO NI PUÑETERA IDEA DE AJAX

Se lo que es, pero no me he mirado su funcionamiento
  #14 (permalink)  
Antiguo 06/07/2010, 11:15
 
Fecha de Ingreso: julio-2008
Ubicación: BOGOTA
Mensajes: 81
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Ayuda Enviar varios formularios con un solo submit

Claro markmb,, es mejor ir a lo concreto. Solo que creo que vi algo sobre cambios en tiempo real usando ajax...seria investigar..
Seguiré con tu idea, ahora ya entendi lo de los forms...gracias en serio..
  #15 (permalink)  
Antiguo 06/07/2010, 11:17
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 10 años, 2 meses
Puntos: 10
Respuesta: Ayuda Enviar varios formularios con un solo submit

De nada, hombre, pero te recomiendo que no te compliques demasiado, es bueno investigar y hacer las cosas bien, pero imagínate esto:

Llevas 5 minutos poniendo 5ids y síes y noes y en el último de todos, te equivocas y pones si en lugar de no, y se envia, y debes volver a empezar, aun tendrias ganas de continuar? Creo que es mejor con un boton de envio, y que lo revisen antes de enviar
  #16 (permalink)  
Antiguo 06/07/2010, 11:26
 
Fecha de Ingreso: julio-2008
Ubicación: BOGOTA
Mensajes: 81
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Ayuda Enviar varios formularios con un solo submit

Obviamente markmb,, asi lo hice,,, cada tanque tenia su submit y asi el usuario podia revisar nuevamente los cambios...pero el cliente pidio el cambio y evitar hacer los 10 submits para hacerlo con un solo "click" y no los 2 click por cada tanque (enviar y boton de regreso),,, llevo 10 dias con ese pequeño "cambio" jaja increible pero como siempre se dice "el cliente tiene la razon" gracias markmb..!
  #17 (permalink)  
Antiguo 06/07/2010, 12:47
 
Fecha de Ingreso: julio-2008
Ubicación: BOGOTA
Mensajes: 81
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Ayuda Enviar varios formularios con un solo submit

Hola,, bueno despues de investigar un poco lo he logrado con ajax..y es impresionante,, algo de copy paste y unos cambios,, aca les doy la idea:

agregar este script:

<script type="text/javascript">
function showUser(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlht tp.responseText;
}
}
xmlhttp.open("GET","actua.php?q="+str,true);
xmlhttp.send();
}
</script>


Aqui pongo las primeras lineas del form

<form name="foma<?php echo $i; $k++; ?>" method="post">
<tr>
<td width="147" bgcolor="#FFCC66"><div align="center"><span class="Estilo6">
<?php $xm = $infoarr['estado']; ?>
<input name="consecutivo<?php echo $i+1; ?>" type="text" value="<?php echo $con; ?>" size="13" width="10" />
</span></div></td>
<td width="75" bgcolor="#FFCC66"><span class="Estilo6">
<label>Si</label>
<input name="prueba1" type="radio" onchange="showUser(this.value)" value="<? if($infoarr['scs']=='paso'){echo $con.'@[email protected]" '; echo "checked='checked'"; }else echo $con.'@[email protected]"'; ?>" />
<br />
<label>No</label>
<input name="prueba1" type="radio" onchange="showUser(this.value)" value="<? if($infoarr['scs']=='nopaso'){echo $con.'@[email protected]" '; echo "checked='checked'"; } else echo $con.'@[email protected]"'; ?>" />
</span></td>
<td width="75" bgcolor="#FFCC66"><span class="Estilo6">

el value me envia a la variable $q el string que llevara el identificador, el valor de paso o no la prueba y el nombre de la pruba,, luego en el archivo actua.php que envia por ajax hago el explode de la variable $q para hacer el update de esta forma:

$info = explode("@",$q);

$result = "UPDATE cilindros set $info[2]='$info[1]' where consecutivo= $info[0] ";
echo $result;
$haga = mysql_query($result);

Es increible,, va actualizando la base de datos en tiempo real...!!

Cualquier info me escriben a [email protected] gracias a todos.

Etiquetas: enviar, submit, formulario
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 15:38.