0

我一直在尝试使用 javascript 提交两个表单但失败了。我搜索了stackoverflow,但没有一个javascript工作......

也试过这个一键提交两份表格

这是我的代码......我的整页很长,所以我刚刚在这里粘贴了两个表单代码......并且form1(regForm)的每个字段都是必需的......并且form2(frmAdd)包含一个while循环......我猜他们两种形式都不同......所以任何使用javascript的解决方案或这些形式的任何替代方案......

  <script>
  submitForms = function(){
    document.forms["regForm"].submit();
    document.forms["frmAdd"].submit();
}
  </script>

      <form action="userdata.php" method="post" name="regForm" id="regForm" >

      <h2><em>Personal Details : </em></h2></br>

        <table width="80%" border="0" cellpadding="3" cellspacing="3" class="forms">
            <tr>
                <td width="22%">NAME<span class="required"><font color="#CC0000">*</font></span></td> 
                <td width="78%"> 
              <input name="full_name" type="text" id="full_name" size="40" value="<? echo $row_settings['full_name']; ?>" class="required"></td>
            </tr>
          <tr> 
               <td>FATHER'S NAME<span class="required"><font color="#CC0000">*</font></span></td> 
               <td> 
              <input name="f_name" type="text" id="f_name" size="40" value="<? echo $row_settings['f_name']; ?>" class="required"></td>
          </tr>
          <tr>
                <td>MOTHER'S NAME<span class="required"><font color="#CC0000">*</font></span></td> 
                <td> 
              <input name="m_name" type="text" id="m_name" size="40" value="<? echo $row_settings['m_name']; ?>" class="required"></td>
            </tr>
          <tr> 
               <td>NATIONALITY<span class="required"><font color="#CC0000">*</font></span></td> 
               <td> 
              <input name="nationality" type="text" id="nationality" size="40" value="<? echo $row_settings['nationality']; ?>" class="required"></td>
          </tr>
          <tr>
                <td>RELIGION<span class="required"><font color="#CC0000">*</font></span></td> 
                <td> 
              <input name="religion" type="text" id="religion" size="40" value="<? echo $row_settings['religion']; ?>" class="required"></td>
          </tr>
        </table></br>

        <p align="center">
            <!-- previous button   <input name="doSave" type="submit" id="doSave" value="Submit">  -->
        </p>
    </form> 

        <form action="userdata.php" name="frmAdd" method="post">

<table width="80%" border="0" cellpadding="3" cellspacing="3" class="forms">
  <tr>
    <td width="5"> <div align="center">NO</div></td>
    <td width="91"> <div align="center">Employer's NAME</div></td>
    <td width="160"> <div align="center">COUNTRY</div></td>
    <td width="198"> <div align="center">POSITION</div></td>
    <td width="70"> <div align="center">FROM</div></td>
    <td width="70"> <div align="center">TO</div></td>
    <td width="70"> <div align="center">SALARY</div></td>
    <td width="70"> <div align="center">REASONS FOR LEAVING</div></td>
  </tr>

  <?php for($i=1;$i<=4;$i++) { ?>

  <tr>
    <th width="5"> <div align="center"><? echo $i . "."; ?></div></th>
    <td><input type="text" name="emp_name<?=$i;?>" size="25"></td>
    <td><input type="text" name="emp_country<?=$i;?>" size="10"></td>
    <td><input type="text" name="emp_pos<?=$i;?>" size="10"></td>
    <td><input type="text" name="emp_frm<?=$i;?>" size="5"></td>
    <td><input type="text" name="emp_to<?=$i;?>" size="5"></td>
    <td><input type="text" name="emp_sal<?=$i;?>" size="5"></td>
    <td><input type="text" name="emp_lev<?=$i;?>" size="25"></td>
  </tr>
  <?php } ?>
  </table>
  </br>
    <!-- previous button <input type="submit" name="doHis" value="Save"> -->
  <input type="hidden" name="hdlfrm" value="<?=$i;?>">

  <input type="button" value="Click Me!" onclick="submitForms()" />

4

5 回答 5

0

找到了解决方案...使用了这个 jquery 和 jquery form js ...

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>

<script>

$(document).ready(function() { 

        $('#form1').ajaxForm(function() { 
        });
        $('#form2').ajaxForm(function() { 
                alert("Your Submitted Information has been Saved !");
                window.location = "userdata.php";    
                return true;

        });
        $("#submitEverything").click(function(){
        mySubmitFunction();
        return false;
});

}); 

function mySubmitFunction() {
        $("#form2").submit();
        $("#form1").submit();
}

</script>

userdata.php 是粘贴此代码的页面,
必须在表单中使用两种不同的操作(如 form1 action="page1" 和 form2 action="page2")

于 2013-05-31T21:50:37.477 回答
0

缺少“标签”,某些地方的代码不正确。
如果您只是将代码缩短到相关部分然后发布,那会容易得多。
所以我不得不为你做这件事。

您应该测试以下代码。只要这不起作用,就不需要更多的“表单输入”来编写。

test.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <script type="text/javascript"> 
    submitForms = function(){
    document.forms["regForm"].submit();
    window.setTimeout(submitB,1000)
    } 

    function submitB() {
    document.forms["frmAdd"].submit();
    }
    </script>
    <title>Emergency Table - Update</title>
</head>

<body>
 <form action="writea.php" method="post" name="regForm" id="regForm" >
    <h2><em>Personal Details : </em></h2></br>
    <table width="80%" border="0" cellpadding="3" cellspacing="3" class="forms">
        <tr>
            <td width="22%">NAME<span class="required"><font color="#CC0000">*</font></span></td> 
            <td width="78%"> 
             <input name="full_name" type="text" id="full_name" size="40" value="Romeo Delta" class="required"></td>
        </tr>
    </table></br>
 </form> 

 <form action="writeb.php" name="frmAdd" method="post">
  <table width="80%" border="0" cellpadding="3" cellspacing="3" class="forms">
  <tr>
    <td width="5"> <div align="center">TEST</div></td>
  </tr>
  </table>
  </br>
  <input type="hidden" name="hdlfrm" value="1000">
  <input type="button" value="Click Me!" onclick="submitForms()" />
 </form>

</body>
</html>

写一个.php

<?php
  if (isset($_POST['full_name'])) { $hdl = $_POST['full_name']; } else { $hdl = "Err."; }
  $fp = fopen('dataa.txt', 'a+');
  fwrite($fp, "Hello from write A : ".$hdl."\r\n");
  fclose($fp);
?>

写b.php

<?php
  if (isset($_POST['hdlfrm'])) { $hdl = $_POST['hdlfrm']; } else { $hdl = "Err."; }
  $fp = fopen('datab.txt', 'a+');
  fwrite($fp, "Hello from write B : ".$hdl."\r\n");
  fclose($fp);
?>

提交后dataa.txt和datab.txt的内容应该是。

数据a.txt 数据
Hello from write A : Romeo Delta
b.txt
Hello from write B : 1000

于 2013-05-18T00:35:02.233 回答
0

您不能在一个页面上提交两种不同的表格。你有一个竞争条件。

如果您想一次提交两个表单,可以将它们合并并在服务器上处理,或者您可以使用 Ajax 来提交它们。

于 2013-05-17T21:05:03.270 回答
0

如果您在页面中进行普通表单发布,则第一个提交操作将完成并重定向到该页面,第二个表单发布不会完成我的解决方案最好使用 ajax post 方法并提交这两个表单希望这有帮助..

于 2013-05-18T06:35:41.067 回答
0

我认为最简单的方法是安装 jQuery 并使用该find方法,然后serialize使用整个内容并使用 jQuery postgetajax方法发送它。

于 2013-05-17T21:16:42.083 回答