Jquery 如何通过ajax提交一千个复选框?

Jquery 如何通过ajax提交一千个复选框?,jquery,coldfusion,coldfusion-8,cfajaxproxy,Jquery,Coldfusion,Coldfusion 8,Cfajaxproxy,我正在使用ColdFusion 8和jQuery 1.7.2 我在我的网站上使用了大量ajax。通常,我会使用CFAJAXPROXY,但这有一个限制:它将所有值放入URL中,URL限制在1250个字符左右。我的数据将超过该值(1000个值,每个值4位) 我通常不会一次提交完整的表格。我通常会根据需要提交一些小的信息,比如当复选框被选中或未选中时。这在使用CFAJAXPROXY时非常有效。现在,我需要同时提交一千个(或更多)复选框,这对我的系统造成了影响 如何像普通表单帖子一样,在不刷新整个页面的

我正在使用ColdFusion 8和jQuery 1.7.2

我在我的网站上使用了大量ajax。通常,我会使用CFAJAXPROXY,但这有一个限制:它将所有值放入URL中,URL限制在1250个字符左右。我的数据将超过该值(1000个值,每个值4位)

我通常不会一次提交完整的表格。我通常会根据需要提交一些小的信息,比如当复选框被选中或未选中时。这在使用CFAJAXPROXY时非常有效。现在,我需要同时提交一千个(或更多)复选框,这对我的系统造成了影响

如何像普通表单帖子一样,在不刷新整个页面的情况下以表单帖子的形式提交此表单

// I WANT TO REFRESH THIS DIV ON FORM SUBMISSION
<div>
<fieldset>
<form method='post' action='?' id='jsSaveAllManufacturersForm'>
<input type='button' value='Select All ' id='jsSelectAll'>
<input type='button' value='Deselect All ' id='jsDeselectAll'> 
<input type='button' value='Save Changes' id='jsSaveChanges'>
<input type='checkbox' value='1'> 1
<input type='checkbox' value='2'> 2
<input type='checkbox' value='3'> 3
</form> 
</fieldset>
<div>

// SET VARS 
var $SaveAllManufacturersForm = $('#jsSaveAllManufacturersForm'),
$SelectAll = $('#jsSelectAll'),
$DeselectAll = $('#jsDeselectAll'),
$SaveChanges = $("#jsSaveChanges");

// MY FUNCTION WHEN FORM IS SUBMITTED
var saveChanges = function(e) {
e.preventDefault();
$SaveAllManufacturersForm.submit();
    jroDash.saveAllManufacturers($SaveAllManufacturersForm);
}

// ACTION THAT LAUNCHES THE FORM SUBMISSION
$SaveChanges.click(saveChanges);
//我想在表单提交时刷新此DIV
1.
2.
3.
//设置变量
var$SaveAllManufacturersForm=$(“#jsSaveAllManufacturersForm”),
$SelectAll=$(“#jsSelectAll”),
$DeselectAll=$(“#jsDeselectAll”),
$SaveChanges=$(“#jsSaveChanges”);
//提交表单时我的功能
var saveChanges=函数(e){
e、 预防默认值();
$SaveAllManufacturersForm.submit();
jroDash.saveAllManufacturers($SaveAllManufacturersForm);
}
//启动表单提交的操作
$SaveChanges。单击(SaveChanges);

CFAJAXPROXY可以轻松设置为使用POST而不是GET

<cfajaxproxy cfc="CFCName" jsclassname="CFProxy"> 

<script>
    myProxy = new CFProxy();
    myProxy.setHTTPMethod('POST');
    myProxy.doMyAjaxMethod();
</script>`

myProxy=new CFProxy();
myProxy.setHTTPMethod('POST');
myProxy.doMyAjaxMethod();
`

CFAJAXPROXY可以轻松设置为使用POST而不是GET

<cfajaxproxy cfc="CFCName" jsclassname="CFProxy"> 

<script>
    myProxy = new CFProxy();
    myProxy.setHTTPMethod('POST');
    myProxy.doMyAjaxMethod();
</script>`

myProxy=new CFProxy();
myProxy.setHTTPMethod('POST');
myProxy.doMyAjaxMethod();
`

在对coldfusion一无所知的情况下,有什么理由不能直接在客户端使用jQuery并跳过cfajaxproxy?这里提到有人这样做是为了解决cfajaxproxy无法处理大量数据的问题(听起来与您的问题类似)——cfajaxproxy实际上节省了大量时间。完成工作所涉及的编码要少得多。这是两年来我在使用它的过程中第一次遇到传递过多信息的问题。我要说的是,jQuery也节省了很多时间:)我能理解其中的微妙之处(甚至非常明显)不过,在大多数情况下,CFAJAXPROXY在coldfusion环境中是一个更好选择的原因。一旦习惯了使用jQuery发布数据,CFAJAXPROXY就不会节省太多时间……如果有的话。CFAJAXPROXY还为页面请求添加了额外的“权重”,作为开发人员,我们完全无法控制该请求。在上面的代码中,我有一行代码将表单值提交给CFC(jroDash.saveAllManufacturers($SaveAllManufacturersForm);)。显示更易于阅读或更少代码的jQuery代码。请让我看看。在没有真正了解coldfusion的情况下,有什么理由不能直接在客户端上转到jQuery并跳过cfajaxproxy?这里提到有人这样做是为了解决cfajaxproxy无法处理大量数据的问题(听起来与您的问题类似)——cfajaxproxy实际上节省了大量时间。完成工作所涉及的编码要少得多。这是两年来我在使用它的过程中第一次遇到传递过多信息的问题。我要说的是,jQuery也节省了很多时间:)我能理解其中的微妙之处(甚至非常明显)不过,在大多数情况下,CFAJAXPROXY在coldfusion环境中是一个更好选择的原因。一旦习惯了使用jQuery发布数据,CFAJAXPROXY就不会节省太多时间……如果有的话。CFAJAXPROXY还为页面请求添加了额外的“权重”,作为开发人员,我们完全无法控制该请求。在上面的代码中,我有一行代码将表单值提交给CFC(jroDash.saveAllManufacturers($SaveAllManufacturersForm);)。显示更易于阅读或更少代码的jQuery代码。请给我看看,太棒了!我迫不及待想试试。。。事实上,我得等到明天。谢谢事实上,没有。我不确定这是错误的信息;我只是觉得我们的服务器有一个安全设置,不允许发布。因此,我无法验证它是否有效(目前)。我将在一分钟内为您获取错误。如果您已将此安全修补程序应用于服务器,则需要更改一些设置以允许非常大的帖子。令人惊叹的!我迫不及待想试试。。。事实上,我得等到明天。谢谢事实上,没有。我不确定这是错误的信息;我只是觉得我们的服务器有一个安全设置,不允许发布。因此,我无法验证它是否有效(目前)。我将在一分钟内为您获取错误。如果您已将此安全修补程序应用于服务器,则需要更改一些设置以允许非常大的帖子。