Jump to content

Error al llamar función PHP desde tpl


Recommended Posts

Hola, he creado una web con php siguiendo el tutoría del Victor Ródenas (https://victor-rodenas.com/2017/04/23/crear-pagina-php-en-prestashop-1-7/) y he adaptado el código a lo que yo quiero que realice ese página. Esa página quiero que tenga dos campos de texto donde el usuario introduce el alto y el ancho y un botón que al pulsarlo llame a una función del archivo php que generará un pdf con las dimensiones marcadas por el usuario. Para realizar esto lo he hecho de la siguiente manera:

En el archivo nadie.tpl (themes/classic/templates/nadie.tpl)

{extends file='page.tpl'}
{block name='page_title'}
<span class="sitemap-title">{l s='Plantilla descargable' d='Shop.Theme'}</span>
{/block}
{block name='page_content_container'}
<section>
<p><label>Introduce ancho:</label> <input type="text" id="name" name="name" maxlength="8" size="10" /></p>
<p><label>Introduce alto:</label> <input type="text" id="name" name="name" maxlength="8" size="10" /></p>
<button onclick="myFunction()">Click me</button>

<p id="demo"></p>


<script>
function myFunction() {
  document.getElementById("demo").innerHTML = "Hello World";
	$.ajax(
            {
                type: 'GET',
                data: {action:'getPDF'},
                url: 'NadieController',
                
                success: function (response) {
                    console.log(response);
                }
            }
    );
}
</script>
</section>
{/block}

y en el fichero NadieController.php (controller/front/NadieController.php)

<?php
class NadieControllerCore extends FrontController
{

public $php_self = 'nadie';

public function initContent()
{
parent::initContent();
if(isset($_GET['action']) && !empty($_GET['action'])) {
    $action = $_GET['action'];
    switch($action) {
        case 'getPDF' : getPDF();break;
        // ...etc...
    }
}

$this->setTemplate('nadie');

}


public static function getPDF(){
ob_start();
require('vendor/fpdf/fpdf.php');
$pdf = new FPDF('P','mm',array(20,10));
$pdf->AddPage();
$pdf->Output();
}
}

He mirado en internet y l sintaxis creo que es correcta, sin embargo, me muestra el error que adjunto en la imagen.

 

Captura de pantalla 2019-04-08 a las 18.05.38.png

Link to comment
Share on other sites

Muchas gracias Rodrigo, ya he metido el script en el literal y no me da ese error, pero la consulta de AJAX no la hace bien, me da un error al intentar acceder al controlador. ¿Como yo lo estoy haciendo es la forma correcta en acceder al controlador que se encuentra en controller/front?

Adjunto el error que me muestra la consola de google chrome.

Captura de pantalla 2019-04-09 a las 10.57.23.png

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...