我计划保存2个表单,但第一个表单是我获取第二个表单的外键
这是我尝试使用Javascript保存此内容
$("#btnSave").click(function (e) {
e.preventDefault();
$('#workForm').submit();
$('#contForm').submit();
});
但它在控件中的联系表单提交时出错,因为在保存作为其外键的联系表单时,工作表的ID仍然为空
我如何使用Jquery和Javascript处理它?</ p>
我也试过这个方法
$("#btnSave").click(function (e) {
e.preventDefault();
if (Id != 0) {
$('#workForm').submit();
$('#contForm').submit();
} else {
$('#workForm').submit(); }
});
但它仅在Else,因为ID为空
我希望有人可以帮助我
谢谢:D 工作者地址是WorkForm 工人联系人是ContForm
我想在填充所有文本框时保存它们
答案 0 :(得分: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 () {
});
});
但是,我同意其他所有人只使用1表格。
您最初是如何提交表单的?
答案 1 :(得分:0)
你当然需要使用AJAX。每次调用ajax都会指定响应处理函数。当第一个AJAX调用的响应返回时,您可以使用AJAX启动第二个表单的保存。
现在,你在AJAX调用中真正做了什么。您应该使用form2js或jquery serialize功能等插件将表单内容序列化为JSON。然后使用$ .ajax进行POST(注意:这与常规表单提交不同)。在成功响应中,您需要确保服务器返回使用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不允许跨域。