0

我计划保存 2 个表格,但第一个表格是我获得第二个表格的外键的地方

这是我尝试使用 Javascript 保存它

$("#btnSave").click(function (e) {
        e.preventDefault();
        $('#workForm').submit();
        $('#contForm').submit();
    });

但它在控件中的联系表单提交上出错,因为在保存作为其外键的联系表单时,工作表单的 ID 仍然为空

我如何使用 Jquery 和 Javascript 处理这个问题?

我也试过这个方法

$("#btnSave").click(function (e) {
        e.preventDefault();


        if (Id != 0) {
            $('#workForm').submit();
            $('#contForm').submit();
        } else {
           $('#workForm').submit(); }
    });

但它只在 Else 出现,因为 ID 为空

我希望有人可以在这里帮助我

谢谢 :D Worker Address 是 WorkForm Worker Contact 是 ContForm

当它们填充所有文本框时,我想保存它们

在此处输入图像描述

4

2 回答 2

1

以下是我的 AJAX 建议的工作方式:

$.post("/form1.php", {
  //form data here
}, function (data) { // get data to use in the second form
    $.post("/form2.php", {
      //form data here
    }, function () {

    });
});

但是,我同意其他人只使用一种形式。

您最初是如何提交表格的?

于 2013-07-19T01:42:35.550 回答
0

您肯定需要使用 AJAX。对于每个 ajax 调用,您都指定响应处理程序函数。当第一个 AJAX 调用的响应返回时,您可以使用 AJAX 启动第二个表单的保存。

现在,您在 AJAX 调用中真正做了什么。您应该使用 form2js 或 jquery 序列化功能等插件将表单内容序列化为 JSON。然后使用 $.ajax 发布(注意:这与常规表单提交不同)。在成功响应中,您需要确保您的服务器返回使用 AJAX 提交第二个表单所需的必要信息。获得响应后,进行必要的 UI 更新,收集第二次表单提交所需的信息,将其序列化,然后使用另一个 $.ajax 再次发送。

以下是粗略的代码结构。

function submitForms() {
   var form1Contents = serialize_form1_to_json;
   $.ajax({ 
       url: form1_action_url,
       type: "POST",
       data: form1Contents
   }).done(function (data) {
      //data is the response of first form save from server. should contain the id you need for form 2
      var form2Contents = serialize_form2_to_json;
      set_id and any other details from form1 _on_form2
      $.ajax({
       url: form2_action_url,
       type: "POST",
       data: form2Contents
      }).done(function(){
         alert('both forms saved.');
      });
   });
}

注意:要提交的表单必须与包含表单的页面同域。由于安全问题,不允许 AJAX 跨域。

于 2013-07-19T01:48:09.557 回答