One way that I found to make this work is to use a dummy.ctp file which is empty. Then I set the debug level to 0 to suppress all output from CakePHP. I then get just output I need. The use of a dummy file seems like a hack workaround to me though but at this point I don’t have a better option.
-----Original Message----- From: cake-php@googlegroups.com [mailto:cake-...@googlegroups.com] On Behalf Of rhythmicde...@gmail.com Sent: Saturday, January 03, 2009 9:45 PM To: CakePHP Subject: Re: Adding table row with AJAX Hi Brian, I was wondering if you had an answer to this issue I am having. I dont understand the error, or why the data is not appending. Thanks. On Jan 3, 9:43 am, Steven Wright <rhythmicde...@gmail.com> wrote: > Thanks for the reply. This is mostly working but there is something I > am still missing. > > I tried two different things. > > 1) If I call the 'edit' action I get a jQuery error ( 'div is null' ' > elem = jQuery.makeArray( div.childNodes ); ') I am not sure what div > its looking for. The second problem with that is that although I can > see thetablerowreturned at the start of the response string the rest > of the content for the view is also returned and I don't know why. > > 2) If I call the 'add_ingredient_row' action I only get the content > for the view in the response but no newrow. > > So two questions: > 1) Why is CakePHP returning all the content for the view? > 2) Why is jQuery giving me that error? > > Thanks again. If I can just get over this hurdle I will be off and running. > > VIEW > > <h2>Testing AJAX with CakePHP and Prototype and Scriptaculous</h2> > > <tableid="the_table"> > <tr id="row1"> > <td>Row1</td> > </tr> > </table> > > <div id="mydiv"> > This is a div > </div> > > <div id="the_button">Click</div> > > CONTROLLER > > class AjaxtestsController extends AppController { > > var $components = array( 'RequestHandler' ); > > function index() > { > $this->pageTitle = 'Index Page'; > } > > function view() > { > $this->pageTitle = 'View Page'; > } > > function edit() > { > $this->pageTitle = 'Edit Page'; > if($this->RequestHandler->isAjax()) > { > $this->layout = 'ajax'; > echo '<tr><td>This is arow</td></tr>'; > > } > } > > function add_ingredient_row() > { > echo '<tr><td>This is arow</td></tr>'; > > } > > } > > JAVASCRIPT > > $(document).ready(function() > { > $('#the_button').click(function() > { > $.ajax({ > url: 'add_ingredient_row/', > type: 'GET', > data: 'data string', > dataType: 'html', > timeout: 2000, > error: function(XMLHttpRequest, textStatus, > errorThrown) > { > // ... > alert('There has been an error'); > }, > success: function(msg) > { > //alert(msg); > $('#the_table').append(msg); > } > }); // ends ajax > }); // ends click > > }); // ends document.ready > -----Original Message----- > From: cake-php@googlegroups.com [mailto:cake-...@googlegroups.com] On > Behalf > > Of brian > Sent: Friday, January 02, 2009 8:26 PM > To: cake-php@googlegroups.com > Subject: Re:Addingtablerowwith AJAX > > On Fri, Jan 2, 2009 at 7:45 PM, Steven Wright > <rhythmicde...@gmail.com> > wrote: > > > Hi Adam, > > Thanks for writing back. How would you get the data back for therow > > from CakePHP? > > > Myrowcontains four columns with the following inputs: > > > amount [text] > > measurement_type [select] > > description [text] > > ingredient [select] > > > This is normally rendered from an element as atablerow. I would like > > the output of that element appended to mytable. So on the button > > click I call the action add_ingredient_row and it should return the > > content of the element. How do I get that content appended to mytable. > > > I can do this without CakePHP. But for me this exercise is to use > > the framework. > > Being a jQuery user, I never bother with Cake's ajax() stuff. But > jQuery is dead simple (mostly) to use, so I don't mind having to write > out a few lines of JS. To do what you describe, I'd do something like > this: > > $(document).ready() > { > $('#the_button').click(function() > { > $.ajax({ > url: the_href, > type: 'GET', > data: the_data, > dataType: 'html', > timeout: 2000, > error: function(XMLHttpRequest, textStatus, > errorThrown) > { > // ... > }, > success: function(msg) > { > /* assuming your controller is > returning '<tr>...</tr>' > */ > $('#the_table').append(msg); > } > }); > }); > }); --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com 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?hl=en -~----------~----~----~----~------~----~------~--~---