Do this http://www.sanisoft.com/blog/2010/10/25/cakephp-sending-json-data-in-response/
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