Php 使用jQuery post()发送序列化表单数据以及其他数据
我试图在一个post()中发送表单数据和页码(用于分页),不幸的是,我无法让它工作。下面是代码,它不会在包含{name:data}标记的情况下运行。删除后运行良好,但显然分页不起作用。有人知道如何发送序列化表单数据以及变量中的一些信息吗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
$(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顶部的code>作为全局变量,但您可以使用外部不可见的var
,将pageRequest
指定为click事件内部的新局部变量,并且它是您要更改以在submit()中使用的“全局”pageRequest
serialize()
返回param=value¶m=value
等,因此您只需在末尾添加pageRequest
我意识到答案(如果它仍然不起作用):改变线路
var pageRequest = $(this).attr('id');
到
这里存在范围问题,var pageRequest=0顶部的code>作为全局变量,但您可以使用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');