我正在尝试使用这段代码来序列化表单并同时发送表单中找不到的额外变量。以下代码行是我所期望的,但遗憾的是不起作用。
var thePage = theFilename();
$.post("pagedetail.php", { $("#PageDetailForm").serialize(), thePage: thePage },
function(data) {
alert(data);
});
有什么想法吗?
答案 0 :(得分:6)
var serialized = $('#PageDetailForm').serialize();
serialized.thePage = thePage;
$.post("pagedetail.php", serialized,
function(data) {
alert(data);
});
答案 1 :(得分:2)
你可以做的是将额外的数据添加到隐藏的输入并将其捕获
pagedetail.php
页面。
例如lats说你的表格
<form id='PageDetailForm'>
<input type="hidden" name="value" id="value" value="the value u wamnt to add goes here" />
....other inputs
</form>
之后,只需执行正常的$.post
$.post("#pagedetail.php",$("#PageDetailForm").serialize(),function(data){
$("#ans").html(data);
// in the pagedetail.php
$echo $_POST['value'];
如果你仍然困惑我,请希望帮助我@dplumptre
答案 2 :(得分:1)
尝试使用$.post
的第二个参数:
{ form: $("#PageDetailForm").serialize(), thePage: thePage }
答案 3 :(得分:1)
希望你还需要这个:)。 尝试使用serializeArray()方法,然后在结果数组中推送一些额外的数据,这样你就没有分割数组等。:
var postData = $('#form-id').serializeArray();
var additionalData = $('#additionalDataID').val();
postData.push({name: 'additionalName', value: additionalData});
最后:
$.post(URL, postData);
答案 4 :(得分:0)
尝试sortable('toArray')
:
var thePage = theFilename();
$.post("pagedetail.php", { pageDetailForm: $("#PageDetailForm").sortable('toArray'), thePage: thePage },
function(data) {
alert(data);
});