Cargar una vista con ajax

2,646 views
Skip to first unread message

eycopia

unread,
Aug 30, 2011, 12:13:07 PM8/30/11
to codeignit...@googlegroups.com
Hola amigos, como  puedo hacer para cargar una vista con ajax sin tener que recurrir a un controlador, lo intente asi:

$(document).ready(function(){
    $('#alogin').click(function(){
        var FrmCargar = '<?php $this->load->view("public/ajax/login"); ?>';
        $('#frmLogin').append(FrmCargar);
    });
    return false;
});

Se que esta muy mal porque lo unico que hago es impirmir la cadena FrmCargar, lo puse asi porque es una idea general de lo que tengo que hacer, pero el ¿cómo lo debo hacer? aun no se me ocurre.

Ustedes como hacen para cargar sus vistas por ajax?

Daniela Blanco

unread,
Aug 30, 2011, 12:46:50 PM8/30/11
to codeignit...@googlegroups.com
En mi caso llamo a una funcion de un controlador, y que esta se encargue de mostrar la vista.


De: codeignit...@googlegroups.com [mailto:codeignit...@googlegroups.com] En nombre de eycopia
Enviado el: martes, 30 de agosto de 2011 01:13 p.m.
Para: codeignit...@googlegroups.com
Asunto: [codeigniter-spanish] Cargar una vista con ajax

william campos

unread,
Aug 30, 2011, 12:54:16 PM8/30/11
to codeignit...@googlegroups.com
Hola que tal si algo asi te dejo un ejemplito q hice hace ufff xD ojala te sirva =)

search = function(){
          array_jform=jQuery('#adminForm2').serializeArray();
           var jform = {};
               for  (i=0; i<array_jform.length; i++){
                    jform[array_jform[i]['name']] = array_jform[i]['value'] ;
           }      
           jQuery.post("/administration/com_alternative/index/"+jQuery("#jform_id").val(), { jform:jform }, function(data){
              jQuery("#a").html(data);
           });

Jimmy Collazos || acido || cuatroxl.com

unread,
Aug 30, 2011, 1:12:11 PM8/30/11
to codeignit...@googlegroups.com
Por norma general yo lo meto dentro de un iFrame; pero si lo que quieres es cargar HTML lo mejor es hacer un controlador que sólo pinte ese HTML y luego lo pongas dentro del HTML:

$('#frmLogin').load('URLto/controller/action', function() {
  alert('Load was performed.');
});

Aunque si lo que buscas es hacer un "login" con Ajax, vas un poco desencaminada....

--
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::: J i m m y  C o l l a z o s :::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

eycopia

unread,
Aug 30, 2011, 1:12:52 PM8/30/11
to CodeIgniter-spanish
No entiendo mucho lo que haces William, creo que definitivamente he de
usar el controlador aunque solo tenga un par de lineas.

Thanks

On 30 ago, 11:54, william campos <wcam...@maxineti.com> wrote:
> Hola que tal si algo asi te dejo un ejemplito q hice hace ufff xD ojala te
> sirva =)
>
> search = function(){
>           array_jform=jQuery('#adminForm2').serializeArray();
>            var jform = {};
>                for  (i=0; i<array_jform.length; i++){
>                     jform[array_jform[i]['name']] = array_jform[i]['value']
> ;
>            }
>
> jQuery.post("/administration/com_alternative/index/"+jQuery("#jform_id").val(),
> { jform:jform }, function(data){
>               jQuery("#a").html(data);
>            });
>        }
>
> El 30 de agosto de 2011 11:46, Daniela Blanco <daniblanc...@gmail.com>escribió:
>
>
>
>
>
>
>
> > **
> > En mi caso llamo a una funcion de un controlador, y que esta se encargue de
> > mostrar la vista.
>
> >  ------------------------------
> > *De:* codeignit...@googlegroups.com [mailto:
> > codeignit...@googlegroups.com] *En nombre de *eycopia
> > *Enviado el:* martes, 30 de agosto de 2011 01:13 p.m.
> > *Para:* codeignit...@googlegroups.com
> > *Asunto:* [codeigniter-spanish] Cargar una vista con ajax

Jimmy Collazos || acido || cuatroxl.com

unread,
Aug 30, 2011, 1:16:45 PM8/30/11
to codeignit...@googlegroups.com
@eycopia Solo por aclarar; con esa función javascript no haces ninguna llamada AJAX ;)

william campos

unread,
Aug 30, 2011, 1:53:00 PM8/30/11
to codeignit...@googlegroups.com
Hola que tal jeje mm bueno es una funcion llamada search que lo que hace es crear un arreglo asociativo (array_jform es el arreglo con serialize forma un arreglo de todos los elementos del formulario de id adminForm2 ) lo hice para varios filtros en una sola funcion la parte de ajax es solo esta:

en donde le paso el parametro url de destino del controlador y el parametro jform mediante post a la funcion index  del controlador com_alternative y en data es lo que retorna la funciòn

Espero haberme echo entender sino fuaaaa! xD

Saludos espero te ayude =)


jQuery.post("/administration/com_alternative/index/"+jQuery("#jform_id").val(),{ jform:jform }, function(data){
               jQuery("#a").html(data);
});



Geraldine Macías

unread,
Aug 30, 2011, 2:20:39 PM8/30/11
to codeignit...@googlegroups.com
También mando al controlador y de ahí la vista
Por ejemplo en la vista donde llamaré el ajax pongo un

<input type="hidden" name="site_url" id="site_url" value="<?= site_url('/nombrecontrolador/')">

JQuery:

$(document).ready(function(){ 
var base=$("#site_url").val(); // jalo el valor de la url de mi controlador, puede hacerse de muchas formas

    $('#algo').click(function(){
Var datocualquiera="hola";
$.ajax({
type: "POST",
url: base+"/metodocontrolador",
data: "mivalor="+datocualquiera,
sucess: function(msg){
$("#idrespuesta").html(msg);
}
});      
)};

El método en tu controlador, podría ser algo como(faltaría validar y etc):
public function metodocontrolador(){
$data['valor']=$_POST['mivalor'];
// hacer lo que se requiera, mandar a modelo, o bla
// y cargar vista Vista
$this->load->view("mivista", $data );
}

Ojalà te sirva

Saludos
From: "Jimmy Collazos || acido || cuatroxl.com" <aci...@gmail.com>
Date: Tue, 30 Aug 2011 19:16:45 +0200
Subject: Re: [codeigniter-spanish] Re: Cargar una vista con ajax

@eycopia Solo por aclarar; con esa función javascript no haces ninguna llamada AJAX ;)


--
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::: J i m m y  C o l l a z o s :::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

eycopia

unread,
Aug 30, 2011, 3:39:44 PM8/30/11
to CodeIgniter-spanish
Gracias.. ya entendi willian XD. Pero igual tengo que usar el
controlar. Y bueno como conclusion diria que no me puedo saltar a una
vista sin antes pasar por el controlador.

una Pregunta Jimi porque me dice que ando mal encamindo para un login
ajax, yo ya no uso iFrames porque lei hace tiempo que no son
recomendables.

Daniela Blanco

unread,
Aug 30, 2011, 3:44:32 PM8/30/11
to codeignit...@googlegroups.com
La idea del MVC es que el controlador precisamente maneje las vistas y
modelos. Si lo salteas estarias rompiendo el paradigma digamos.

-----Mensaje original-----

Enviado el: martes, 30 de agosto de 2011 04:40 p.m.
Para: CodeIgniter-spanish
Asunto: [codeigniter-spanish] Re: Cargar una vista con ajax

--

Reply all
Reply to author
Forward
0 new messages