通过jquery一起提交表单和变量

时间:2011-11-12 08:19:44

标签: javascript jquery ajax forms form-submit

我正在使用两种类型的提交。

有$ .post

$.post('servers_side.php', { var1: var1, var2:var2},
function(result) 
{
some code...
});

将单独的变量发送到服务器端脚本。

还有AjaxSubmit插件提交整个表单

$('#form').ajaxSubmit({success: function(result)
{
some code...
}
});

但现在我有以下任务,假设我有一个表格和一些变量,我必须同时提交。

那么可以将表格+一些变量一起提交吗?

2 个答案:

答案 0 :(得分:2)

更新

以下是您提交的方式:

var Vars = {var1: var1, var2:var2};
var varsData = $.param(Vars);

// form data
var formData = $('#formID').serialize();

var data = varsData + '&' + formData;

$.ajax({
  type: 'POST',
  url: 'servers_side.php',
  data: data,
  success: function(res){ alert (res) }
})

您可以使用jQuery.param()将数组或对象转换为友好的url值名称paris。您可能还需要使用jQuery.serialize()将表单数据转换为名称值paris。以下是您可以采取的措施:

var Vars = {var1: var1, var2:var2};
var varsData = $.param(Vars);

// form data
var formData = $('#formID').serialize();

var data = varsData + '&' + formData;

现在data包含您可以在ajax请求中发送的自定义变量和表单元素的所有数据。

答案 1 :(得分:0)

嗯,这可能,但代码可能看起来很混乱。作为最佳做法,您应添加一些hidden字段

<form>
   .
   .
   .
   <input type="hidden" name="var1" id="var1" />
   <input type="hidden" name="var2" id="var2" />
   <input type="hidden" name="var3" id="var3" />
   .
   .
   .
</form>

并使用此JavaScript为这些hidden字段设置值

$("#var1").val("some data 1");
$("#var2").val("some data 2");
$("#var3").val("some data 3");

您可以继续使用现有的$.post()代码