Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用jQuery post()发送序列化表单数据以及其他数据_Php_Jquery_Ajax - Fatal编程技术网

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

Php 使用jQuery post()发送序列化表单数据以及其他数据,php,jquery,ajax,Php,Jquery,Ajax,我试图在一个post()中发送表单数据和页码(用于分页),不幸的是,我无法让它工作。下面是代码,它不会在包含{name:data}标记的情况下运行。删除后运行良好,但显然分页不起作用。有人知道如何发送序列化表单数据以及变量中的一些信息吗 $(document).ready(function(){ //set initial page to zero var pageRequest = 0; $('.datepicker').datepick

我试图在一个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();
    });
使用

serialize()
返回
param=value¶m=value
等,因此您只需在末尾添加pageRequest


我意识到答案(如果它仍然不起作用):改变线路

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

这里存在范围问题,
var pageRequest=0作为全局变量,但您可以使用外部不可见的
var
,将
pageRequest
指定为click事件内部的新局部变量,并且它是您要更改以在
submit()中使用的“全局”
pageRequest

serialize()
返回
param=value¶m=value
等,因此您只需在末尾添加pageRequest


我意识到答案(如果它仍然不起作用):改变线路

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


这里存在范围问题,
var pageRequest=0作为全局变量,但您可以使用
var
,在click事件内部将
pageRequest
指定为新的局部变量,该变量在外部不可见-它是您要更改以在
submit()中使用的“全局”
pageRequest

如果您已经有了
单击
事件-那么您可以在表单上添加隐藏字段并在其中写入当前分页值。当然,这不是一个解决办法。但是仍然.u_mulder,谢谢你,这就是我让它工作的方式,只是好奇是否有办法将它添加到post数据中,而不是使用隐藏字段。如果你已经有
单击
事件-那么你可以在表单上添加隐藏字段并在那里写入当前分页值。当然,这不是一个解决办法。但是仍然.u_mulder,谢谢你,这就是我让它工作的方式,只是好奇是否有办法将它添加到post数据中,而不是使用隐藏字段。这允许脚本运行,但由于某种原因不会将pgeNmbr与post请求一起发送。至少我不这么认为。如果我使用隐藏表单发送信息,并使用jQuery修改值,那么分页工作正常,因此PHP方面的工作正常……那么pageRequest没有设置,我假设您插入的内容是正确的。这不是猜测,看看serialize经常使用上述方法来完成带有额外(通常是硬编码)参数的ajax调用。尝试创建一个
var s=$(this)。序列化()+'&pgeNmbr='+pageRequest
并将其记录到控制台。几乎没有人(包括我)看到过这一点:)这允许脚本运行,但由于某些原因,不会通过pgeNmbr发送post请求。至少我不这么认为。如果我使用隐藏表单发送信息,并使用jQuery修改值,那么分页工作正常,因此PHP方面的工作正常……那么pageRequest没有设置,我假设您插入的内容是正确的。这不是猜测,看看serialize经常使用上述方法来完成带有额外(通常是硬编码)参数的ajax调用。尝试创建一个
var s=$(this).serialize()+'&pgeNmbr='+pageRequest
并将其记录到控制台。几乎令人尴尬的是,包括我在内的所有人以前都没有看到:)
pageRequest = $(this).attr('id');