Publicación de un objeto y salida en pdf a través de fpdf

¡Buenos días! Estoy tratando de enviar un objeto grande desde JavaScript a php, para generar una salida de PDF a través de FPDF. Hasta ahora, me ayudaste a publicar el objeto con el siguiente fragmento:

jQuery.post('output.php', { data: { myObject:myObject }, }, function(data) { console.log(data); }); 

Eso funciona, puedo acceder a los datos en php. Sin embargo, este método parece prohibir una salida en pdf. Incluso si no tengo nada en mi código php que el ejemplo ‘Hello World’ de fpdf, no obtengo un archivo pdf:

 AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ?> 

Creo que esto podría deberse a la función (datos) {console.log (data)}, pero hasta ahora no he descubierto cómo solucionarlo.

EDITAR ——————

Si la llamada “publicar” se hace así:

 post("output.php"); 

todo funciona bien …

EDITAR ——————

EDIT 2 ——————

Parece que este es un problema general de fpdf si desea crear un pdf a través de jQuery. En realidad, puede encontrar muchas publicaciones y preguntas con respecto a esto en SO, una vez que sepa qué buscar … Sin embargo, todas esas publicaciones sugieren no usar jquery sino transmitir los valores a través de un “formulario” -post. Bueno, esto es lo que hice para empezar:

 function post(path, calcdata, method) { method = method || "post"; var form = document.createElement("form"); form.setAttribute("method", method); form.setAttribute("action", path); form.setAttribute("target","_blank"); for(var key in calcdata) { if(calcdata.hasOwnProperty(key)) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("type", "hidden"); hiddenField.setAttribute("name", "CalculationData["+key+"]"); hiddenField.setAttribute("value", calcdata[key]); form.appendChild(hiddenField); } } document.body.appendChild(form); form.submit(); } 

Mi problema es, sin embargo, que tengo un objeto ( calcData ) que contiene una matriz de otros objetos y no sé cómo podría adaptar el código anterior para publicar correctamente estos datos … con la transferencia de datos de jQuery es posible pero La salida en PDF no funciona … si alguien conoce una solución para cualquier problema, ¡esto sería muy apreciado!

EDIT 2 ——————

Por si acaso, cualquier otra persona tendrá que publicar una matriz / objeto multidimensional en php y crear un pdf a partir de ella, esta es mi solución:

 for(var key in calcdat) { if(calcdat.hasOwnProperty(key)) { if(typeof(calcdat[key]) == 'object' || typeof(calcdat[key]) == 'array'){ for(var key2 in calcdat[key]){ if(calcdat[key].hasOwnProperty(key2)){ if(typeof(calcdat[key][key2]) == 'object' || typeof(calcdat[key][key2]) == 'array'){ for(var key3 in calcdat[key][key2]){ if(calcdat[key][key2].hasOwnProperty(key3)){ var hiddenField = document.createElement("input"); hiddenField.setAttribute("type", "hidden"); hiddenField.setAttribute("Name", "CalculationData[" + key + "][" + key2 + "][" + key3 + "]"); hiddenField.setAttribute("value", calcdat[key][key2][key3]); form.appendChild(hiddenField); } } }else{ var hiddenField = document.createElement("input"); hiddenField.setAttribute("type", "hidden"); hiddenField.setAttribute("Name", "CalculationData[" + key + "][" + key2 + "]"); hiddenField.setAttribute("value", calcdat[key][key2]); form.appendChild(hiddenField); } } } } else { var hiddenField = document.createElement("input"); hiddenField.setAttribute("type", "hidden"); hiddenField.setAttribute("name", "CalculationData["+key+"]"); hiddenField.setAttribute("value", calcdat[key]); form.appendChild(hiddenField); } } } 

Puede que esta no sea la solución más elegante, y tal como se muestra solo funciona para matrices / objetos de hasta 3 dimensiones, pero creo que se puede obtener la idea y es fácilmente extensible. Este método le permite publicar su objeto en php sin jQuery / Ajax y, por lo tanto, si desea generar un pdf a través de fpdf , puede hacerlo sin ninguna solución alternativa y puede guardar / mostrar el pdf en el usuario sin guardar los datos en el servidor.

Espero que eso te ayude a ahorrar tiempo, me tomó bastante tiempo localizar los problemas que tuve con esta tarea (simple) … ¡Salud!

Podría darte una solución para mpdf si te gustaría eso:

 include __DIR__.'..../mpdf.php'; $mpdf=new mPDF(); $mpdf->WriteHTML($HTML_CONTENT); $mpdf->Output('filename.pdf','F'); 

entonces, el problema puede ser similar con fpdf , ¿ves los argumentos de la función output() ?