PDF via Ajax

655 views
Skip to first unread message

M. J.B.

unread,
May 7, 2014, 9:10:46 AM5/7/14
to codeignit...@googlegroups.com
Buenas a todos. 

Soy Mariano y ésta a ser mi primer consulta ya que soy nuevo en el grupo, y no solo acá sino que también en el rubro programación. Asi que, por anticipado, les pido disculpas por mi nivel de novato.

Les comento, estoy haciendo una función ajax para que ejecute un controlador que genera un pdf, con fpdf, con algunos datos que la función colecta y envía por post:

function imprimir_pdf(){
    data_to_send = $('#frm_chk_obs').serialize();
    url = base_url + 'index.php/reporte/enviar_pdf/' +ipda;
    //alert(url);
    $.post(url,data_to_send,function(pdf){
      window.open(pdf);  
    });    

Mi problema es que no se que tengo que hacer para que abra una nueva ventana con el pdf ya que, por lo que veo, me genera un conflicto con el "$this->pdf->Output" del fpdf.

Si alguno tiene una idea, agradeceré.
Saludos!



Ever Daniel Barreto Rojas

unread,
May 7, 2014, 9:42:59 AM5/7/14
to codeignit...@googlegroups.com
Hola Mariano,

no estoy 100% seguro, pero no creo que puedas hacer un post a un controller que su vez te retorna un PDF para luego abrir otra ventana pasandole directamente el pdf. Si estoy equivocado, que alguien me corrija.

Creo que tenés dos opciones para hacer esto:
1) Si no necesitas pasar datos por POST (y poder usar GET), entonces podes hacer algo asi:
function imprimir_pdf(){
     url = base_url + 'index.php/reporte/enviar_pdf/' +ipda;
        window.open(url);
}

2) Si necesitas pasar datos por POST, y abrir una ventana es un _requerimiento_, podés directamente hacer algo así:
- a tu form donde están los datos que cargás, le agregás un atributo adicional target con valor "_blank" para que quede asi:
<form id="form-reporte" action="'<?php echo site_url('reporte/enviar_pdf') ?>" method="post" target="_blank">
- en tu javascript hacés lo siguiente:
function imprimir_pdf() {
    $('#form-reporte').submit();
};
Ahora que pienso, si tenés un botón generar report _dentro_ de los form tags ni va a ser necesario tu javascript, pero si tu botón está fuera de los forms tags entonces si los vas a necesitar

No es la mejor solución pero espero que te ayude.

Saludos,


---
Ever Daniel Barreto Rojas
everdaniel at gmail dot com
everdaniel.com


--
Antes de responder revisa: http://es.wikipedia.org/wiki/Netiquette
Regístrate en el Censo CI: http://bit.ly/miembroscodeigniteres
---
Has recibido este mensaje porque estás suscrito al grupo "CodeIgniter-spanish" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a codeigniter-spa...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a codeignit...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/codeigniter-spanish.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/codeigniter-spanish/a78fa651-9bdb-4239-9596-79ed4598c1b6%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

M. J.B.

unread,
May 7, 2014, 9:59:39 AM5/7/14
to codeignit...@googlegroups.com
Gracias Ever, voy a intentar hacer lo que me recomendás.

Saludos!
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a codeigniter-spanish+unsub...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages