我希望添加一个标志值来指示PHP例程,执行哪些函数。
我尝试了各种选项,但似乎都没有。
我假设这是通过添加我的额外名称/值对来扩展序列化形式变量的情况。
我最近的尝试是
$.ajax etc etc
data: $('#Form1').serialize().push( { 'phpFlag': 1 } ),
其中说我不能对这个对象使用'push',我认为这是一个数组。
任何人都可以让我摆脱痛苦。我知道我可以使用隐藏的表单值。
由于
MCL
答案 0 :(得分:0)
您应该使用serializeArray
,serialize
将返回一个字符串:
var params = $("#Form1").serializeArray();
params.push({ name: 'phpFlag', value: 1 });
...
data: params
或者您可以使用@jakeclarkson答案,因为它更简单。
答案 1 :(得分:0)
.serialize()
返回一个字符串,这就是.push()
不起作用的原因。
我会在表单中添加一个隐藏字段,并在序列化之前为其提供所需的值。
<form id="Form1">
<!-- the rest of your form -->
<input type="hidden" name="phpFlag" value="0">
</form>
data: $('#Form1').find('input[name="phpFlag"]')
.val("1")
.end()
.serialize();
答案 2 :(得分:0)
jQuery的serialize方法返回字符串而不是数组,只需执行以下操作:
data: $("#Form1").serialize() + "&phpFlag=1";