У меня есть таблица со списком пользователей, и я хочу сохранить несколько записей, используя флажок в приложении Codeigniter, я использую jquery ajax для отправки нескольких строк на мой контроллер.По нажатию кнопки я хотел бы получить электронную почту каждого проверенного пользователя из базы данных и сохранить результат в формате CSV.
/ * Мой сценарий * /
$('#button').click(function(){
var checkbox = $('.rows_checkbox:checked');
if(checkbox.length > 0)
{
var checkbox_value = [];
$(checkbox).each(function(){
checkbox_value.push($(this).val());
});
$.ajax({
url:"<?php echo base_url(); ?>backoffice/candidates/csv_all",
method:"POST",
data:{checkbox_value:checkbox_value},
success:function()
{
alert('success');
}
})
}
else
{
alert('Select atleast one records');
}
});
/ *Контроллер * /
public function csv_all()
{
if($this->input->post('checkbox_value'))
{
$file_name = 'student_details_on_'.date('Ymd').'.csv';
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file_name");
header("Content-Type: application/csv;");
$id = $this->input->post('checkbox_value');
for($count = 0; $count < count($id); $count++)
{
$student_data = $this->users_model->get_csv($id[$count]);
}
// file creation
$file = fopen('php://output', 'w');
$header = array("email");
fputcsv($file, $header);
foreach ($student_data->result_array() as $key => $value)
{
fputcsv($file, $value);
}
fclose($file);
exit;
}
}
/ ====== Модель ==== /
public function get_csv($id)
{
$this->db->select('email');
$this->db->where('id', $id);
$query = $this->db->get('users');
if ($query->num_rows() > 0) {
$query_rslt = $query->row_array();
return $query_rslt['email'];
}
else { return FALSE; }
}
, когда я нажимаю кнопку, я получаю предупреждениено он не генерирует CSV-файл