Как отправить тысячу проверенных флажков через ajax?
Я использую ColdFusion 8 и jQuery 1.7.2.
Я использую тонну Ajax на своих сайтах. Обычно я бы использовал CFAJAXPROXY, но у этого есть ограничение: он помещает все значения в URL, который ограничен примерно 1250 символами. Мои данные превысили бы это (1000 значений по 4 цифры каждый).
Я обычно не подаю целые формы сразу. Я обычно предоставляю небольшие фрагменты информации по мере необходимости, например, когда флажок установлен или не отмечен. Это работает очень хорошо, используя CFAJAXPROXY. Теперь мне нужно отправить тысячу (или больше) флажков одновременно, и это бросает рывок в моей системе.
Как я могу отправить эту ФОРМУ как 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 ответ
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