Как отправить тысячу проверенных флажков через 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

Другие вопросы по тегам