1

我正在尝试在单个 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();
    });
4

1 回答 1

1

利用

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

serialize()返回param=value&param=value等,因此您只需在最后添加 pageRequest。


我意识到了答案(如果它仍然不起作用):换行

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

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

这里有一个作用域问题,var pageRequest = 0;在顶部,作为全局变量,但是您pageRequest通过使用在点击事件内分配为新的局部变量var,这在外部不可见 - 它是pageRequest您想要更改的“全局”在你的submit().

于 2013-09-21T21:56:22.280 回答