$this->layout = 'ajax';//no actual layout will be rendered just the element
Or $this->render('path/to/element/view', 'ajax'); //2nd param says use ajax
layout
If you look the views/layouts/ajax.ctp all it is is <?php echo
$content_for_layout;?> so its nothing but the data / html you send it
HTH
K
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf
Of Will
Sent: Thursday, April 14, 2011 3:32 PM
To: CakePHP
Subject: Re: Using render() with Ajax (Cake 1.3.8)
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 <[email protected]> wrote:
> Do
thishttp://www.sanisoft.com/blog/2010/10/25/cakephp-sending-json-data-in-...
>
> On Apr 13, 11:29 am, Will <[email protected]> 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
[email protected] For more options, visit this group at
http://groups.google.com/group/cake-php
--
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
[email protected] For more options, visit this group at
http://groups.google.com/group/cake-php