2011-12-19 12 views
11

Mam następujący kod, w zasadzie wykonuje dwie operacje. Pierwszy polega na przesłaniu danych z mojego formularza do arkusza kalkulacyjnego google, a druga operacja polega na przesłaniu danych wartości drugiego pola tekstowego do innej wartości pola tekstowego strony. Jak to zrobić?Prześlij wiele formularzy za pomocą jednego przycisku przesyłania

<script type="text/javascript"> 

<!-- 
    function copy_data(val){ 
var a = document.getElementById(val.id).value 
document.getElementById("copy_to").value=a 
} 
//--> 
</SCRIPT> 
<style type="text/css"> 
<!-- 
--> 
</style> 

</head> 
<body > 
<script type="text/javascript">var submitted=false;</script>   
<iframe name="response_iframe" id="hidden_iframe" style="display:none;" onload="if(submitted){window.location='Thanks.asp';}"></iframe>   <form action="https://docs.google.com/spreadsheet/formResponse?formkey=dGtzZnBaYTh4Q1JfanlOUVZhZkVVUVE6MQ&ifq" method="post" target="response_iframe" id="commentForm" onSubmit="submitted=true;"> 

<!-- #include virtual="/sts/include/header.asp" --> 
<!-- ABove this Header YJC --> 
<table style="background-color: #FFC ;" width="950" align="center" border="0" summary="VanaBhojnaluBooking_Table"> 
<tr><td colspan="7"><p class="MsoNormal" align="center" style="text-align:center;"><strong><span style="line-height:115%; font-family:'Arial Rounded MT Bold','sans-serif'; font-size:16.0pt; color:#76923C; ">Karthika Masa Vanabhojanalu &ndash; Participation Booking</span></strong></p> 
<p class="MsoNormal" align="center" style="text-align:center;"><strong><em><span style="line-height:115%; font-size:20.0pt; color:#7030A0; ">13<sup>th</sup> Nov 2011 - @ West Coast Park - Singapore</span></em></strong></p> 
    <p class="MsoNormal" align="center" style="text-align:center;"><strong><span style="color:#7030A0; ">Reserve your participation and avail </span><span style="color:red; "> <a target="_blank" href="/STS/programs/VB_2011_info.asp"> DISCOUNT </a></span><span style="color:#7030A0; "> on the ticket</span></strong></p></td> </tr> 
    <tr> 
    <th width="37" scope="col">&nbsp;</th> 
    <th width="109" rowspan="5" valign="top" class="YJCRED" scope="col"><div align="left"><font size="2"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;* Required</font></div></th> 
    <td width="68" scope="col"><div align="right"><font size="2.5px">Name</font><span class="yj"><span class="yjcred">*</span></span></div></td> 
    <th colspan="3" scope="col"><label for="Name"></label> 
     <div align="left"> 
     <input name="entry.0.single" class="required" style="width:487px; height:25px; vertical-align:middle;" type="text" id="entry_0" title="Enter your name" > 
     </div></th> 
    <th width="223" scope="col">&nbsp;</th> 
    </tr> 
    <tr> 
    <td>&nbsp;</td> 
    <td><div align="right"><font size="2.5px">Phone</font><span class="yj"><span class="yjcred">*</span></span></div></td> 
    <td width="107"><input name="entry.1.single" class="required" title="Handphone Number with out +65" maxlength="8" style="width:100px;height:25px;" type="text" onkeyup="copy_data(this)" onKeyPress="return numbersonly(this, event)" id="entry_1" ></td> 
    <td width="170"><div align="right"><font size="2.5px">Email</font><span class="yj"><span class="yjcred1">*</span></span></div></td> 
    <td width="206"><input name="entry.2.single" type="text" style="width:190px;height:25px;" id="required" title="Enter your email address" class="required email" ></td> 
    </tr> 


    <tr> 
    <td>&nbsp;</td> 
    <td><div align="right"><font size="2.5px">Home Phone</font></div></td> 
    <td width="107"><input name="entry.1.single" title="Handphone Number with out +65" maxlength="8" style="width:100px;height:25px;" type="text" onKeyPress="return numbersonly(this, event)" id="entry_100" ></td> 

    </tr> 


    <tr> 
    <td align="center" colspan="7"><p>&nbsp; 
     </p> 
     <p> 
     <input type="submit" name="submit" onMouseOver="Window.status='You can not see anything';return true" onMouseOut="window.status='Press SUBMIT only after proper inforatmion entering then you are Done'" onClick="jQuery.Watermark.HideAll();" value="Submit"> 
    </p> 
    <p>&nbsp;</p></td> 
    </tr> 
    <p>&nbsp;</p> 
    <tr> 
    <td colspan="25"></td> 
    </tr> 
</table> 

</form> 
<form method="Link" Action="Sankranthi_Reserv2.asp"> 
<input disabled name="copy of hp" maxlength="8" style="width:100px;height:25px;" type="text" id="copy_to" > 

</form> 


<p><!-- #include virtual="/sts/include/footer.asp" --> 

    <input type="hidden" name="pageNumber" value="0"> 
    <input type="hidden" name="backupCache" value=""> 
<script type="text/javascript"> 

     (function() { 
var divs = document.getElementById('ss-form'). 
getElementsByTagName('div'); 
var numDivs = divs.length; 
for (var j = 0; j < numDivs; j++) { 
if (divs[j].className == 'errorbox-bad') { 
divs[j].lastChild.firstChild.lastChild.focus(); 
return; 
} 
} 
for (var i = 0; i < numDivs; i++) { 
var div = divs[i]; 
if (div.className == 'ss-form-entry' && 
div.firstChild && 
div.firstChild.className == 'ss-q-title') { 
div.lastChild.focus(); 
return; 
} 
} 

Jak widać z powyższego, jest to pierwsza strona w drugą stronę, gdzie odnosił się do Sankranthi_Reserv2.asp w drugiej formie. Chcę przekazać wartość pola tekstowego tam, więc problem polega na tym, że pierwsza forma jest przesyłana do dokumentów Google i zapisywanie danych, ale druga forma musi przekazać wartość pola tekstowego numeru telefonu ręcznego do następnej wartości textbox, ale jest tylko jeden przycisk SUBMIT.

+2

Czy możesz uprościć swój przykładowy kod, usuwając zbędne szczegóły? Trudno to zrozumieć. –

+0

Przykro mi, że masz krótszy kod, ale FYI działa dobrze, z wyjątkiem problemu, o którym wspomniałem o jednym przycisku przesyłania dla dwóch formularzy i drugiej postaci wysyłającej wartości na inną stronę, podczas gdy pierwsza forma wysyła wartości pól tekstowych do google arkusze kalkulacyjne ... tts – JackyBoi

+1

Nadal widzę wiele nieistotnych informacji. Czy możesz zrobić 10-15 linii krótkich? –

Odpowiedz

7

Do przesłania dwóch formularzy należy użyć Ajax. Ponieważ po użyciu strony form.submit() zostanie załadowany adres URL akcji dla tego formularza. więc będziesz musiał to zrobić asynchronicznie.

Możesz więc wysyłać oba żądania asynchronicznie lub wysyłać jedno żądanie asynchronicznie, a po jego zakończeniu przesłać drugi formularz.

function submitTwoForms() { 
var dataObject = {"form1 Data with name as key and value "}; 
    $.ajax({ 
     url: "test.html", 
     data : dataObject, 
     type : "GET", 
     success: function(){ 
     $("#form2").submit(); //assuming id of second form is form2 
     } 
    }); 
    return false; //to prevent submit 
} 

Możesz powiązać tę funkcję submitTwoForms() na tym jednym przycisku przesyłania. Korzystanie

$('#form1').submit(function() { 
    submitTwoForms(); 
    return false; 
}); 

Ale jeśli nie chcesz, aby to wszystko zrobić, można użyć Jquery form plugin złożyć formularz za pomocą Ajax.

+0

Proponuję użyć "event.preventDefault();" nad "return false;". Ale żaden argument o tym działa poprawnie :-) – Flater

+0

Pradeep Zastanawiam się, w jaki sposób zmienić ten wiersz "{" form1 Dane z nazwą jako kluczem i wartością "};" do tego prawa "document.getobjectbyname (" form1 ") ...? Ale ponieważ nie jestem pewien, czy przeglądałeś mój kod w pierwszym poście, ponieważ moje dwa formularze używają różnych metod, jeden jest POST, drugi to LINK. formularz, ponieważ używa metody LINK, więc wysyła dane w łączu html (wiem, że jest wyeksponowany, jest w porządku), więc nie jestem pewien, co zastąpić linią kodu ... proszę spojrzeć na mój kod powyżej i rada dalej.Taksa – JackyBoi

+1

@JackyBoi Użyłem tej linii jako symbolu zastępczego, ponieważ będziesz musiał napisać kod do tworzenia tej zmiennej (jeśli są dwa wejścia to każda nazwa każdego wejścia będzie miała postać 'klucz' i ich wartość będzie wartością dla odpowiedniego klucza), dla wielu zmiennych będzie to żmudne tak wiele pluginów, ale w twoim przypadku możesz bezpośrednio utworzyć ten obiekt jako '{inputname:" value "} przez wprowadzenie tej nazwy wejść i jej wartości przez' dokument.getELementByID' – Pradeep

8

Coś jak to będzie działać:

$('#form1_submit_button').click(function(){ 
    $('form').each(function(){ 
     $(this).submit(); 
    }); 
}); 

Alternatywa:

$('#form1_submit_button').click(function(){ 
    $('#form1 #form2 #form3').submit(); 
}); 
+0

proszę zobaczyć poniżej ostatni komentarz powinien odpowiadać w tym samym czasie jako ten komentarz. Używam dwóch różnych metod dla obu form – JackyBoi

-2

najprostszy sposób znalazłem to coś takiego

<form method='post' action='whatever?whatever1=blah&whatever2=blah'> 
<?php 
header ("Location: http://example.com/whatever.html"); 
?> 

Będzie to działanie formularz (bez pokazywania go w przeglądarce), a następnie przekierowanie do strony nagłówka.

Powiązane problemy