I am not sure if this is the correct way as it post repeatedly but does the work so far. In my JS: //GET SELECTED POSTS/PAGES FOR DELETION $("#delete_selection").click(function(event) { /* stop form from submitting normally */ event.preventDefault(); $.each($('input[name="delete_selection[]"]:checked'), function() { $.ajax({ type: "POST", url: 'post_delete_selection', data: { selected: $(this).val() }, success: function(data){ setTimeout(function () { window.location.href = window.location.href; }, 1000); $('#ajax_message').show().html('Successfully deleted.'); }, }); }); }); My Controller: public function post_delete_selection(){ $selectedIds = $_POST['selected']; //THIS GRABS THE VALUES FROM THE AJAX $this->posts_model->delete_post_selection($selectedIds); } My Model: function delete_post_selection($selectedIds) { $this->db->where_in('post_id', $selectedIds)->delete('posts'); return true; } THE ONLY PROBLEM I HAVE NOW IS THE CONFIRMATION BECAUSE RIGHT NOW IT JUST DELETE THE SELECTED CHECKBOXES. =)