membuat halaman download untuk codeigniter (CI)

selamat malam :D saya mau nanya, gimana ya cara bikin halaman gini di CI 3 jadi kalau file yang di download tidak muncul, maka kita bisa refresh halaman tersebut.. soalnya file yang mau didownlaod ada 3 halaman (pdf), jd agak berat kalau download.. ini script controller untuk download pdf nya

<?function cetakpdf() {
    		ob_start();
    		$id_peserta =$this->uri->segment(3);
    		$data = array ('data_peserta'=> $this->M_pendaftar->getbiodatapendaftar($id_peserta));
    		$this->load->view('admin/print/print_form_daftar_ulang',  $data);

    		$data = array ('data_peserta'=> $this->M_pendaftar->getbiodatapendaftar($id_peserta),
 			'data_spp'=> $this->M_informasi->detail_infoBiaya());
			$this->load->view('admin/print/print_form_daftar_ulang1',  $data);

			$data = array ('data_peserta'=> $this->M_pendaftar->getbiodatapendaftar($id_peserta));
    		$this->load->view('admin/print/print_form_daftar_ulang2',  $data);
    		$html = ob_get_contents();
    		ob_end_clean();
    		require_once('./assets/html2pdf/html2pdf.class.php');
    		$pdf = new HTML2PDF('P', 'A4', 'fr', true, 'UTF-8', 3);
    		$pdf->WriteHTML($html);
    	}?>

semoga ada yang bisa bantu.. terimakasih :D

avatar ekaaws
@ekaaws

2 Kontribusi 0 Poin

Diperbarui 6 tahun yang lalu

3 Jawaban:

Gini bukan ya?

Coba di 1 pdf dulu, ga pake ob_start soalnya htmlnya ga di tampilin ke layar.


<?function cetakpdf() {
// buat lagi view untuk halaman download
$this->uri->segment(3);
$this->load->view('halaman_download');
$data = array ('data_peserta'=> $this->M_pendaftar->getbiodatapendaftar($id_peserta));

// Tambah parameter true agar bisa disimpan di variable
$p1 = $this->load->view('admin/print/print_form_daftar_ulang',  $data, true);
require_once('./assets/html2pdf/html2pdf.class.php');
$pdf = new HTML2PDF('P', 'A4', 'fr', true, 'UTF-8', 3);
$pdf->WriteHTML($p1);
}

avatar unknown2414
@unknown2414

15 Kontribusi 6 Poin

Dipost 6 tahun yang lalu

@unknow2414 tapi download-an otomatisnya kok ga bisa ya..?

avatar ekaaws
@ekaaws

2 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

Mungkin functionnya harus dipisah kali ya, jadi ada :

 <?function loadHalamanDownload() {
$this->load->view('halaman_download');}

Di halaman_download.php ada script countdown, yang download setelah 5 detik,,, kurang lebih seperti ini scriptnya.. https://www.w3schools.com/JSREF/met_win_settimeout.asp Setelah waktunya habis masuk ke url cetakPdf buat download file,,

 <?function cetakpdf() {
// buat lagi view untuk halaman download
$this->uri->segment(3);
$data = array ('data_peserta'=> $this->M_pendaftar->getbiodatapendaftar($id_peserta));

// Tambah parameter true agar bisa disimpan di variable
$p1 = $this->load->view('admin/print/print_form_daftar_ulang',  $data, true);
require_once('./assets/html2pdf/html2pdf.class.php');
$pdf = new HTML2PDF('P', 'A4', 'fr', true, 'UTF-8', 3);
$pdf->WriteHTML($p1);
}

Kalo ga bisa coba tambah

 $html2pdf->output();

di akhir untuk melihat pdfnya langsung di browser.

maaf ya kalo ga sesuai jawabanya soalnya ane ga coba langsung codenya, hanya memberikan alur kodenya saja,,

avatar unknown2414
@unknown2414

15 Kontribusi 6 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban