Codeigniter AJAX отправлять данные в контроллер экспорта CSV - PullRequest
0 голосов
/ 13 мая 2019

У меня есть таблица со списком пользователей, и я хочу сохранить несколько записей, используя флажок в приложении 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-файл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...