尝试将变量值添加到现有的Form POST变量中

时间:2011-12-02 16:15:07

标签: serialization jquery

我希望添加一个标志值来指示PHP例程,执行哪些函数。

我尝试了各种选项,但似乎都没有。

我假设这是通过添加我的额外名称/值对来扩展序列化形式变量的情况。

我最近的尝试是

$.ajax etc etc
data: $('#Form1').serialize().push( { 'phpFlag': 1 } ),

其中说我不能对这个对象使用'push',我认为这是一个数组。

任何人都可以让我摆脱痛苦。我知道我可以使用隐藏的表单值。

由于

MCL

3 个答案:

答案 0 :(得分:0)

您应该使用serializeArrayserialize将返回一个字符串:

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";