Ver Mensaje Individual
  #4 (permalink)  
Antiguo 31/03/2010, 10:06
Brahyam
 
Fecha de Ingreso: enero-2005
Mensajes: 122
Antigüedad: 19 años, 10 meses
Puntos: 2
Respuesta: cargar vistas en MVC con ajax

Listo, tengo una estructura de trabajo realizada de la siguiente manera:

Tengo un MainController, Un MainModel y un MainForm, pero aqui te explicare el funcionanmiento del MainController que es el que controlaria todo el manejo de xajax.

El MainController:

Código PHP:
    include_once '../xajax/xajax_core/xajax.inc.php';

    Class 
MainController {
        
        public 
$ajax;
        public 
$respuestaAjax;
        public 
$debug_xajax;
        public 
$waitCursor;
        public 
$lib_xajax;
        public 
$ruta_xajax;
        public 
$reg_functions;

        public function 
__construct(){
            
            
$this->init();
            
            
$this->ajax             = new xajax();            
            
$this->respuestaAjax = new xajaxResponse();            
            
            
$this->regFunctions();    
            
$this->ajaxLibrary();
            
        }


        public function 
init(){
            ;
        }


        protected function 
regFunctions(){ 
            
            foreach(
$this->reg_functions as $function){
                
$this->ajax->registerFunction(array($function, &$this$function));
            }
                           
            
$this->ajax->processRequest();
            
            if(!
$this->debug_xajax$this->debug_xajax false;
            
$this->ajax->setFlag('statusMessages',$this->debug_xajax); 
            
$this->ajax->setFlag('waitCursor',$this->waitCursor); 
                
        }


        protected function 
ajaxLibrary(){
            
            
$this->lib_xajax $this->ajax->getJavascript($this->ruta_xajax)));
            
        }

    } 
Listo, esto es el MainController.
Ahora configuramos la clase que va a extender el MainController asi:

Código PHP:

    
class IndexController extends MainController
    
{
    
        protected 
$plantilla

        public function 
init(){
                
            
$this->plantilla            'tu_plantilla.php';
            
$this->ruta_xajax        '../xajax/';
            
$this->debug_xajax        true;
            
$this->lib_xajax         'xajax_javascript';
            
$this->waitCursor         false;
            
$this->reg_functions     = array('functionPrueba');
                
        }


        public function 
index() {

            
// Aqui va el contenido de tu pagina cuando se carga por primera vez
            
$data = array(lib_ajax => $this->lib_xajax,main => true);
            
$this->Vistas->show($this->plantilla,$data);

        }


        public function 
functionPrueba(){

            
$var 'texto de prueba para la vista';

            
//Para tu caso, podria ser asi:
            
return $this->respuestaAjax->assign('div_id','innerHTML',$this->Vistas->show($this->plantilla,$var));

        } 
y en la vista asi:

Código HTML:
<? if($data[main]) : ?>
<html>
<head>
<!-- incluimos la libreria xajax -->
<? if($data[lib_ajax]) echo $data[lib_ajax]; ?>
</head>
<body>

<div id="div_id"></div>

</body>
</html>

<? endif ?>

<? if($var) : ?>
este es el texto generado con xajax: <?= $var ?>
<? endif; ?> 
Con esto te deberia funcionar.