Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    inviare piu form con un solo click

    salve a tutti, come da oggetto vorrei capire se c'è la possibilita di inviare form separate in una stessa pagina con una sola submit

  2. #2
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Visto che non l'hai specificato ti mostro un esempio dove c'è solo una form che comanda e prevede l'invio delle altre.
    Nel caso in cui tu voglia inviarle tutte al submit di una qualsiasi, allora va modificato qualcosa. La logica comunque è quella di effettuare una submit delle form tramite javascript.
    codice:
    <head>
      <script type="text/css">
        form inviaTutte(){
          document.GetElementById("f2").submit();
          document.GetElementById("f3").submit();
          document.GetElementById("f4").submit();
        }
      </script>
    </head>
    
    <body>
      <form id="f1" action="pagina1.htm" target="t1" onsubmit="inviaTutte();"></form>
      <form id="f2" action="pagina2.htm" target="t2"></form>
      <form id="f3" action="pagina3.htm" target="t3"></form>
      <form id="f4" action="pagina4.htm" target="t4"></form>
    </body>
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  3. #3
    ti ringrazio era quello che cercavo, ho un solo dubbio nell'uso di javascript.. se l'utente lo avesse disattivato il tutto non funzionerebbe vero?

  4. #4
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Originariamente inviato da claudio82
    ti ringrazio era quello che cercavo, ho un solo dubbio nell'uso di javascript.. se l'utente lo avesse disattivato il tutto non funzionerebbe vero?
    Vero. Però è l'unica soluzione.
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  5. #5
    scusami, ho provato a fare come mi hai scritto ma non funziona,
    nellla form principale a ho aggiunto onSubmit="inviaTutto()" ovviamente nel metodo ho inserito gli id delle form che voglio siano inviate ma quando vado a richiamare i dati dalla pagina destinazione ritrovo solo quelli della form principale...
    p.s:
    1) nella form secondaria ho definito la stessa action di quella principale è giusto?
    2) a diferenza del tuo esempio non ho definito alcun target

  6. #6
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Originariamente inviato da claudio82
    scusami, ho provato a fare come mi hai scritto ma non funziona,
    nellla form principale a ho aggiunto onSubmit="inviaTutto()" ovviamente nel metodo ho inserito gli id delle form che voglio siano inviate ma quando vado a richiamare i dati dalla pagina destinazione ritrovo solo quelli della form principale...
    p.s:
    1) nella form secondaria ho definito la stessa action di quella principale è giusto?
    2) a diferenza del tuo esempio non ho definito alcun target
    E no, avevo dato per scontato che tu avessi due pagine, non ha senso mandare più form alla stessa pagina, è impossibile.
    Prima di procedere con soluzioni drastiche (utilizzo di AJAX) prova a postare le form, con tutti gli input, per vedere di inserire tutte le informazioni della seconda in campi nascosti della prima in maniera da distinguerli poi lato server.
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  7. #7
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Ok, mi sono sbattuto un po' a fare un esempio generico:
    Metto l'id della form davanti al nome del campo, per evitare nomi doppi, ma volendo si potrebbero dare direttamente dei nomi univoci alle due form e togliere il prefisso.
    codice:
    <html>
      <head>
        <script type="text/javascript">
          function inviaTutte(oForm1) {
            var oCampoF2, oNuovoCampo;
            var oForm2 = document.getElementById("f2");
            for (var i = 0; i < oForm2.elements.length; i++) {
              oCampoF2 = oForm2.elements[&#105;];
    
              oNuovoCampo = document.createElement("input");
    
              oNuovoCampo.setAttribute("type", "hidden");
              oNuovoCampo.setAttribute("name", oForm2.id + "_" + oCampoF2.name);
              oNuovoCampo.setAttribute("value", oCampoF2.value);
    
              oForm1.appendChild(oNuovoCampo);
            }
          }
        </script>
      </head>
    
      <body>
        <form id="f1" action="b.asp" onsubmit="inviaTutte(this);" method="post">
          <input type="text"   name="i1" value="form1input1" />
          <input type="text"   name="i2" value="form1input2" />
          <input type="text"   name="i3" value="form1input3" />
          <input type="submit" value="Invia" />
        </form>
        <form id="f2" action="b.asp" method="post">
          <input type="text"   name="i1" value="form2input1" />
          <input type="text"   name="i2" value="form2input2" />
          <input type="text"   name="i3" value="form2input3" />
          <input type="text"   name="i4" value="form2input4" />
        </form>
      </body>
    </html>
    Dalla pagina puoi accedere a tutti i campi passati:
    codice:
    Tutti i campi inviati:</br>
    <% For Each Campo In Request.Form %>
    Request.Form(<%=Campo%>)=<%=Request.Form(Campo)%>
    
    <% Next %>
    
    </br>
    Accesso diretto:</br>
    Valore dell'input con name="i3" della form2: <%=Request.Form("f2_i3")%>
    Forse l'ideale sarebbe quello di mettere il prefisso nei nomi di tutti i campi di tute le form, in modo da accedere sempre lato server nel modo form_campo.

    Fammi sapere se ti serve aiuto.
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  8. #8
    grazie mille, non ho ancora provato il tuo esempio però mi sembra possa andare, in effetti forse non è il massimo dell'eleganza ma se funziona va piu che bene, se ho problemi provo a ridisturbarti..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.