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

Reply via email to