กดแล้ว export เลย ไม่ต้องเด้ง tab ใหม่?

กระทู้คำถาม
สวัสดีครับ ผมมีปัญหาคือ เวลากด export แล้วมันเด้ง tab ใหม่ขึ้นหน้าไฟล์ pdf จากนั้นค่อยกดโหลดมา แต่ผมอยากให้กดแล้ว export เลยโหลดเลย ไม่ต้องเด้ง tab ใหม่ครับ

// js 
$('#pdfSubmit').click(function(){
    window.location = '".$this->createUrl('pdf',array('id'=>$model->id))."';
});
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 1
ใช้ a tag กับ download attribute สิครับ
<a href="your.pdf" download>YourPDF</a>

ใช้ code นี้ แทน code เดิม เพือสร้าง a tag download ครับ

$('#pdfSubmit').click(function(){
    $('<a></a>',{
        hidden: true,
        download: 'yourfile.pdf', // ถ้าเป็นค่าว่าง ก็จะเป็นการใช้ชื่อไฟล์จากต้นทาง
        href: $this->createUrl('pdf',array('id'=>$model->id))
    }).appendTo("body")[0].click();
});

อันนี้ตัวอย่างที่ผมเขียนไว้ในกรณี textfile แต่ก็ใช้หลักการเดียวกันครับ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่