Мне нужно передать данные в виде массива в экземпляр fancybox в JQuery.
Переданный формат должен выглядеть следующим образом: Array( [remove] => Array ( [1] => 1 [109] => 109 [110] => 110 ))
Теперь я использую следующий код, но он не работает, потому что я не передаю массив.
Заранее спасибо ...
Флажки выглядят так и генерируются по результатам базы данных:
<td class="checkboxTable"><input name="remove[<?php echo $users->id; ?>]" type="checkbox" id="checkbox[]" value="<?php echo $users->id; ?>"/></td>
Я использую следующий JavaScript:
$('.deleteConfirmationMultiple').Loader({
url: ['/dgpcms/public/fancybox/jquery.fancybox-1.3.2.pack.js',
'/dgpcms/public/fancybox/jquery.easing-1.3.pack.js',
'/dgpcms/public/fancybox/jquery.mousewheel-3.0.4.pack.js',
'/dgpcms/public/fancybox/jquery.fancybox-1.3.2.css'],
////debug: [true],
cache: [true],
success: function(target){
$(this).fancybox({
'autoDimensions' : true,
'autoScale' : true,
'overlayOpacity' : '0.70',
'overlayColor' : '#000000',
'transitionIn' : 'none',
'transitionOut' : 'none',
'hideOnOverlayClick': false,
'hideOnContentClick': false,
'showCloseButton' : false,
'href' : $('#deleteConfirmation').attr('action'),
ajax : {
type : 'POST',
data : $('input:checkbox:checked')
}
});
}
});
Есть ли способ передать значения в точности так, как это сделал бы PHP (например: Array ( [remove] => Array ( [1] => 1 [109] => 109 [110] => 110 ) [deleteMultiple] => Delete selected )
)?
РЕДАКТИРОВАТЬ 12 января 2011
Я получил немного дальше, но нет странной проблемы ..
Идентификатор не публикуется в качестве данных в моем вызове ajax. Когда я создаю функцию onclick для ссылки checkall (все флажки выбираются) и вызываю функцию getData и оповещаю результат, я получаю идентификаторы отмеченных флажков. Но вызов функции в моем вызове ajax возвращает пустой ...
Вот код:
$('.deleteConfirmationMultiple').Loader({
url: ['/dgpcms/public/fancybox/jquery.fancybox-1.3.2.pack.js',
'/dgpcms/public/fancybox/jquery.easing-1.3.pack.js',
'/dgpcms/public/fancybox/jquery.mousewheel-3.0.4.pack.js',
'/dgpcms/public/fancybox/jquery.fancybox-1.3.2.css'],
////debug: [true],
cache: [true],
success: function(target){
// Array( [remove] => Array ( [1] => 1 [109] => 109 [110] => 110 ))
// var id = {5: '5', 6: '6', 7: '7'};
var id = '';
$.fn.getData = function(options){
var id = $('input:checkbox:checked').map(function(){
return this.value.serialize();
}).get();
//alert(id);
return id;
};
$(this).fancybox({
'autoDimensions' : true,
'autoScale' : true,
'overlayOpacity' : '0.70',
'overlayColor' : '#000000',
'transitionIn' : 'none',
'transitionOut' : 'none',
'hideOnOverlayClick': false,
'hideOnContentClick': false,
'showCloseButton' : false,
'href' : $('#deleteConfirmation').attr('action'),
ajax : {
type : 'POST',
data : {'remove':id}
}
});
}
});
Редактировать 12 января 2010
Код ниже, содержащий жестко закодированный массив, работает точно так, как я хочу. Теперь мне нужно создать то же самое из отмеченных флажков ....
var id = {5: '5', 6: '6', 7: '7'};
$(this).fancybox({
'autoDimensions' : true,
'autoScale' : true,
'overlayOpacity' : '0.70',
'overlayColor' : '#000000',
'transitionIn' : 'none',
'transitionOut' : 'none',
'hideOnOverlayClick': false,
'hideOnContentClick': false,
'showCloseButton' : false,
'href' : $('#deleteConfirmation').attr('action'),
ajax : {
type : 'POST',
data : {'remove':id}
}
});