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

时间:2013-02-21 20:51:35

标签: jquery coldfusion coldfusion-8 cfajaxproxy

我正在使用ColdFusion 8和jQuery 1.7.2。

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

我通常不会立即提交整份表格。我通常会根据需要提交一小段信息,例如选中或取消选中复选框时。使用CFAJAXPROXY可以很好地工作。现在我需要提交一千个(或更多)复选框,这会在我的系统中引发一个扳手。

如何在不刷新整个页面的情况下将此FORM作为FORM POST提交,就像普通表格帖子一样?

// 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);

1 个答案:

答案 0 :(得分:4)

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

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

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

http://forta.com/blog/index.cfm/2007/10/15/Using-POST-For-ColdFusion-Ajax-Calls