vcard export download в Codeigniter работает только один раз

Я хочу, чтобы мой пользователь выбрал несколько контактов и экспортировал их данные в формате vcard. Это мой контроллер:

function get_contacts_email_vcard()
{
$this->load->library('vcard');
$datavcard = $this->getvcard($this->user_model->get_email_contacts());
}

function getvcard($dat)
{
$datavcarddata = array();
foreach($dat as $data){
$datavcarddata['display_name'] = $data->name;
$datavcarddata['cell_tel'] = $data->mobile_no;
$datavcarddata['email1'] = $data->email;
if (is_array($datavcarddata))
{
$this->vcard->vcard($datavcarddata);
}
else
{
$this->vcard->vcard();
}
$this->vcard->zipdownload();
}
return $datavcarddata;
}

Это мой взгляд:

<li><a href="<?php echo base_url(); ?>auth/get_contacts_email_vcard">vCard(Address Book)</a></li>

Это моя модель:

$this->db->select('*');
$this->db->from('contacts');
$this->db->where('user_id', $this->session->userdata('user_id'));
$this->db->order_by('date_created', 'DESC');
$query = $this->db->get();
$result = $query->result();
return $result;

Проблема, с которой я сталкиваюсь, заключается в том, что это работает только один раз. Только данные последнего контакта из моей базы данных загружаются в zip-файл. Я хочу создать разные zip-файлы или vcf-файлы для разных контактов. И я также хочу создать один zip-файл, содержащий все vcf-файлы.

0

Решение

Хорошо, после большого количества исследований я обнаружил, что одно событие щелчка (или любое другое событие) может отправить только один запрос на загрузку в браузер. Так что невозможно скачать несколько карточек

0

Другие решения

$this->db->select('*');
$this->db->from('tblname');
$info = $this->db->get()->result();
$userContacts = new stdClass();
$userContacts->data = $info;

$dataArray = '';

foreach($userContacts as $contact)
{

for($i=0; $i<sizeof($contact);$i++)
{


$first_name = $contact[$i]->name;

$last_name = '';

$mobile_number = $contact[$i]->mobile;

$email_address= '';

$dataArray .="BEGIN:VCARD\nN:$first_name;$last_name\nFN:$first_name\nTEL;TYPE=WORK,MSG:$mobile_number\nEMAIL;TYPE=INTERNET:$email_address\nEND:VCARD\n";

}

}


$data = $dataArray;

$size = strlen($data);

$filename = "Restaurants.vcf";

header("Content-Type: application/octet-stream");

header("Content-Length: $size");

header("Content-Disposition: attachment; filename=\"$filename\"");

header("Content-Transfer-Encoding: binary");
0

По вопросам рекламы [email protected]