使用 jQuery post() 发送序列化表单数据以及其他数据


Send serialized form data as well as other data with jQuery post()

我正在尝试在单个帖子中发送我的表单数据以及页码(用于分页),不幸的是我无法让它工作。这是代码,它不会在包含 {name : data} 标签的情况下运行。删除后它运行良好,但显然分页不起作用。有人知道如何发送序列化的表单数据以及来自变量的一些信息吗?

$(document).ready(function(){
            //set initial page to zero
        var pageRequest = 0;
        $('.datepicker').datepicker();
        $('#search_text').keyup(function(){
            $('#test_form').submit();
        });
        //assign current page number to variable and get a new page
        $('#page-links').on('click', '.page-indv', function(){
            var pageRequest = $(this).attr('id');
        $('#test_form').submit();});
        //Send form data and page number, recieve JSON results 
        $('#test_form').submit(function(){
            $.post(
                $(this).attr('action'),
                           {pgeNmbr : pageRequest}, //works fine with this line removed
                $(this).serialize(),
                function(data){
                    $('#results').html(data.html);
                    $('#page-links').html(data.page);
                },
                "json"
            );
            return false;
        });
        $('#test_form').submit();
    });

使用

..
$(this).serialize()+'&pgeNmbr='+pageRequest
..

serialize()返回param=value&param=value等,因此您只需在末尾添加页面请求即可。


我意识到答案(如果仍然不起作用):更改行

var pageRequest = $(this).attr('id'); 

pageRequest = $(this).attr('id');

这里有一个范围问题,var pageRequest = 0;顶部,作为全局变量,但您可以使用 varpageRequest作为 click-event 内的新局部变量分配,该变量在外部不可见 - 它是您要更改以在submit()中使用的"全局"pageRequest