试图向现有的Form POST变量添加一个变量值



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

我尝试了各种选项,但似乎都不起作用。

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

我最近的尝试是

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

这说明我不能在这个对象上使用'push',我认为它是一个数组。

谁能让我摆脱我的痛苦?我知道我可以使用隐藏表单值。

感谢

jQuery的serialize方法返回一个字符串而不是一个数组,只需做如下操作:

data: $("#Form1").serialize() + "&phpFlag=1";

.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();

您应该使用serializeArray, serialize将返回一个字符串:

var params = $("#Form1").serializeArray();
params.push({ name: 'phpFlag', value: 1 });
...
data: params

或者你可以使用@jakeclarkson的答案,因为它更简单。

最新更新