Thanks for the response!  Unfortunately that's not quite what I was
looking for.  What I'm trying to do is essentially display the
contents of a view as a result of an Ajax request rather than send
JSON data as a result of a controller function (which is what the blog
article was talking about).  My solution for now is basically to
output the contents of the view and then append them to a div using
jQuery.  I was apparently misunderstanding what the 'ajax' parameter
was supposed to do.  If anyone knows of a cleaner way of doing this,
I'm all ears, but my solution appears to fit my needs for now.

On Apr 14, 7:33 am, thatsgreat2345 <thatsgreat2...@gmail.com> wrote:
> Do 
> thishttp://www.sanisoft.com/blog/2010/10/25/cakephp-sending-json-data-in-...
>
> On Apr 13, 11:29 am, Will <000w.s.s....@gmail.com> wrote:
>
>
>
>
>
>
>
> > Hi all,
>
> > I'm brand new to CakePHP, so forgive me if this is a silly question,
> > but I have been having trouble understanding how render() is supposed
> > to work with Ajax calls.  Right now I am trying to implement a
> > calendar that has a load bar that disappears once all the scheduling
> > data for a particular group of employees is gathered from a somewhat
> > slow RESTful API.  I am using jQuery to send a post request to my
> > controller like this:
>
> > $(document).ready(function(){
> >        var id = $('#id").val();
> >         $.post('/employees/month_view', {empid: id}, function(data){
> >                 $('#loading').fadeOut();
> >         });
>
> > })
>
> > In my controller, I have a function called month_view() that looks
> > like this:
>
> > function month_view(){
> >     $this->autoRender = false;
> >     $empid = $this->params['form']['empid'];
> >     $conditions= array('empid' => $empid);
> >     $employees = $this->Employee->find('all', compact('conditions'));
> >     $employees = array();
> >     $this->set('employees', $employees);
> >     $this->render('/employees/month_view');
>
> >    }
>
> > I looked around and found a book ("Beginning Cake PHP: From Novice to
> > Professional") and a blog article (http://www.reversefolds.com/
> > articles/show/ajax) that seems to suggest that I should be able to
> > call $this->render('/employees/month_view', 'ajax') and have the month
> > view render on the page.  However, that does not seem to work for me
> > and both of those sources look somewhat dated.  Right now it appears
> > that the month_view.ctp is just being output as if I were calling echo
> > on the view, so if I changed my JavaScript to:
>
> > $(document).ready(function(){
> >        ...
> >         $.post('/employees/month_view', {empid: id}, function(data){
> >                 $('#loading').fadeOut($('#content').append(data));
> >         });
>
> > })
>
> > I can append the template to the content div, but that feels like the
> > wrong way of doing things.  My question is: can I call render() for a
> > controller function that's being accessed via Ajax and have it display
> > the view directly or do I have to use JavaScript to append it (like
> > the above)?

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to