Miércoles, 07 Noviembre 2012 21:46

VT 20 PHP:POO+MVC - Crear un framework básico

Escrito por  Jaisiel Delance

En este tutorial veremos la paginación de registros utilizando AJAX y la forma de cargar el contenido de las vistas sin el layout.

Descargar este Vídeo | Descargar código fuente

15 comentarios

  • Enlace al Comentario Hvgo Lunes, 22 Septiembre 2014 21:24 publicado por Hvgo

    no me funciona la paginacion con on,

  • Enlace al Comentario Jaisiel Delance Miércoles, 23 Julio 2014 14:09 publicado por Jaisiel Delance

    Estas llamando el objeto _acl y este no está presente en $_post.

  • Enlace al Comentario Pepe Miércoles, 16 Julio 2014 02:01 publicado por Pepe

    Ante todo agradecerte, por el aporte a la comunidad libre con esta nueva tecnología.

    Cuando agrego en el alumnoAjax.tpl lo siguiente las dos líneas entre { } { } :
    //************************************************
    ID
    Apellidos
    Nombres
    Email
    DNI
    {if $_post->_acl->permiso('editar_post')}Editar{/if}
    {if $_post->_acl->permiso('eliminar_post')}Eliminar{/if}
    //***********************

    me da el siguiente error:

    Fatal error: Call to a member function permiso() on a non-object in C:\xampp\htdocs\ciune\tmp\template\6ed0b26408d744c1d308704c7295c794282b02fb.file.alumnoAjax.tpl.php on line 38

    A que se debe.
    Gracias

  • Enlace al Comentario feder Viernes, 27 Septiembre 2013 17:10 publicado por feder

    Hola, muchas gracias por compartir su conocimiento.

    tengo una duda, he tratado de editar y eliminar cada registro de la paginacion, pero resulta que al querer eliminar los registros de la ultima paginacion no me muestra los registros anteriores, no se descuenta si las paginas totales son 20, al eliminar todos los registros de la ultima pagina osea de la pagina 20 , deberia de descontarme el numero de pàgina a 19 y mostrarme los registros de esta pagina, he tratado de reprogramar la function paginador para que me descuente, sin embargo, no logro hacerlo, quizas si no fuera mucha molestia podria enseñarnos por favor con un videotutorial de como lograr que me descuente la ultima pagina una vez se halla eliminado los registros de esta ultima pàgina?

    saludos

  • Enlace al Comentario Johan Sábado, 01 Junio 2013 01:29 publicado por Johan

    Hola master todo este conocimiento esta ok y dejeme felicitarlo este es un gran tutorial aprendi mucho.. mil gracias...

    Ahora quiero dejar un pequeño aporte:
    en esta parte del tutorial cuando se quiere usar la paginacion mediante ajax, se esta usando una version de JQuery 1.70, pues en el el metodo live() aun es usao pero cuando lo corri en una version Jquery 1.9.0 ya no funcionaba, buscando en san google encontre le problema pues esta funcion ay estaba obsoleta pues encontre otra forma para que funcione con la version de JQuery 1.90 y es como sigue:

    $(document).on({ready: function(){

    $(this).on({click: function(){
    paginacion($(this).attr('pagina'));
    }
    },".pagina");

    var paginacion = function(pagina){
    $.post(_baseUrl_ + 'post/pruebaAjax', {'pagina':pagina}, function(data){
    $('#lista_registros').html('');
    $('#lista_registros').html(data);
    });
    }
    }});

    asi pues funciona ok.... saludos....suerte

  • Enlace al Comentario julian Sábado, 23 Marzo 2013 18:32 publicado por julian

    Muchas gracias Maestro Jaisiel Delance, por la colaboracion de la pregunta que le realize.

    Tambien muchas gracias por la serie de tutoriales, eh aprendido mucho sobre el modelo MVC, php y jquery, exelentes tutoriales.

    Gracias.

  • Enlace al Comentario Jaisiel Delance Sábado, 09 Marzo 2013 11:34 publicado por Jaisiel Delance

    Hola julian,

    Tu problema es que cuando llamas renderizar(), incluye el header y el footer en la respuesta html que viene via ajax. Debes untilizar $noLayout para no incluir el header y el footer.

    Saludos

  • Enlace al Comentario julian Miércoles, 06 Marzo 2013 01:59 publicado por julian

    Le agradezco la ayuda y colaboracion por el la pregunta del video 17 de los tutoriales.
    Lo vuelvo a molestar por otro inconveniente presentado.

    --View.php--

    El layout principal lo cambie por el de bootstrap.
    Tengo 2 archivos el header y el footer en archivos .phtml.
    El el contenido del header incluyo la linea de
    No utilizo la variable $noLayout

    $rutaView = $this->_rutas['views'] . $vista . '.phtml';
    $template = ROOT . 'views' . DS . 'layout'. DS . DEFAULT_LAYOUT . DS;

    if (is_readable($rutaView))
    {
    include_once $template . 'header.php';
    include_once $template . 'footer.php';
    }else{
    throw new Exception("Error de Vista");
    }

    $this->_acl = $this->_acl;

    Al momento de hacer la paginacion con ajax

    -- postController.php --

    En asterisco esta la funcion general.
    La coloco de la nueva forma en que va a estar y coloco el archivo prueba.js y realiza el alert con los numeros de la paginacion.

    public function prueba($pagina = false)
    {
    /*if(!$this->filtrarInt($pagina)){$pagina = false;}else{$pagina = (int) $pagina;}*/

    $this->getLibrary('paginador');
    $paginador = new Paginador();

    $this->_view->setJs(array('prueba'));
    $this->_view->posts = $paginador->paginar($this->_post->getPrueba()/*, $pagina*/);
    $this->_view->paginacion = $paginador->getView('paginacion_ajax'/*, 'post/prueba'*/);
    $this->_view->titulo = 'Post';
    $this->_view->renderizar('prueba', 'post');
    }


    Al momento de crear esta nueva funcion siguiendo los pasos y las caracteristicas de esta y terminado el archivo prueba.js.

    public function pruebaAjax()
    {
    $pagina = $this->getInt('pagina');

    $this->getLibrary('paginador');
    $paginador = new Paginador();

    $this->_view->setJs(array('prueba'));
    $this->_view->posts = $paginador->paginar($this->_post->getPrueba(),$pagina);
    $this->_view->paginacion = $paginador->getView('paginacion_ajax');
    $this->_view->renderizar('ajax/prueba' /*,false*/);
    }

    Propando la pagina por primera vez carga la tabla y la paginacion en la ruta 'post/prueba', al momento de realizar clic en cualquier otra opcion de
    la paginacion la realiza pero la muestra dentro de un div, la pagina principal de la pagina, con la tabla y todo lo demas que tiene la pagina principal, no
    se que paso estoy realizando mal, nuevamente le pido un consejo y ayuda.
    Gracias.

  • Enlace al Comentario Ender Ramirez Lunes, 19 Noviembre 2012 18:39 publicado por Ender Ramirez

    Buena tarde Jaisiel espero estas bien, muchas gracias por estos tutoriales tenia tiempo sin visitar tu web site probando el código de este tutorial me surgió la siguiente duda la paginación como la muestras de un controlador fuera de un modulo pero como se haría para realizarla dentro de un modulo...

  • Enlace al Comentario Manuel de jesus Miércoles, 14 Noviembre 2012 11:19 publicado por Manuel de jesus

    el curso de framework esta muy bien me ha servido para mi trabajo de grado gracias jaisel.

Deja un comentario

Asegúrate de llenar la información requerida marcada con (*). No está permitido el Código HTML.

hosting joomla