Thanks for this Marcin, but unfortunately it does not really answer my
question as it is for Cake 1.2 and not Cake 1.3. 

In cake 1.3, the Ajax and Javascript helpers have been deprecated in
favour of a single Js helper. The Js helper can use Prototype, JQuery
and Mootools libraries out of the box and simply has to be confiqured as
to which one to use.

It is the new Js helper I am having trouble with since the JQuery code
it produces does not seem to work. It may be that I am simply using the
wrong version of JQuery or something silly like that... I was just
hoping that somebody would be able to tell me what I need to do to get
it working.


On Thu, 2011-01-20 at 14:45 -0800, Marcin Jankowski wrote:
> just look at http://www.cakephp.bee.pl/ and read it :) cake use
> Prototype, which have similar/same functions to JQuerry and u can't
> use both of them, or u have know how to do it
> http://docs.jquery.com/Using_jQuery_with_Other_Libraries
> 
> I hope this will help u :)
> 
> On 20 Sty, 18:00, Steve <[email protected]> wrote:
> > On Thu, 2011-01-20 at 03:03 -0800, Ratty wrote:
> > > I am trying to use JQuery with CakePHP (1.3.6) using the JS helper.
> >
> > > I have a bit of code that works fine with the prototype library but
> > > when I change the library to JQuery, it breaks. The correct function
> > > in the controller class is definately called and the database update
> > > in the function happens. But when the function calls $this-
> > > >render('add_success','ajax'); at the end to render 'add_success.ctp'
> > > using the 'ajax.ctp' layout... nothing happens.
> >
> > > Is there something I need to do to make JQuery work with the JS
> > > library other than those detailed in the 1.3 Cookbook ?
> >
> > > I hope someone can help or at least point me in the right direction.
> >
> > In case it helps...  Here are some code snippets of what I am trying to
> > do.
> >
> > app_controller.php calls registers the Js Helper accross the entire
> > application ( I will localise this when I get it working ). To switch to
> > JQuery I use 'Js'=>array('JQuery')
> >
> > class AppController extends Controller {
> >     ...
> >     var $helpers = array( 'Form', 'Html', 'Js' => array('Prototype'));
> >     ...
> >
> > }
> >
> > default.ctp layout includes the javascript library and writes any
> > buffered output just before </body>. Again, I change the 'prototype' to
> > 'jquery'  ( I am using jquery-1.4.4 )
> >
> > <head>
> >         <title><?php echo $title_for_layout; ?></title>
> >         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" 
> > />
> >         <?php echo $html->css( 'global' ); ?>
> >         <?php echo $this->Html->script('prototype');?>
> > </head>
> > <body>
> > <div id="container">
> >   <div id="content">
> >     <div id="content_left">
> >         ...
> >     </div>
> >     <!-- end of content left -->
> >     <div id="content_right">
> >         <?php echo $content_for_layout ?>
> >     </div>    
> >     <!-- end of content right -->
> >   </div>
> >   <!-- end of content -->
> >   <div id="footer">
> >     ...
> >   </div>
> >   <!-- end of footer -->
> > </div>
> > <!-- end of container -->
> > <?php echo $this->element('sql_dump'); ?>
> > <?php echo $this->Js->writeBuffer(); ?>
> > </body>
> > </html>
> >
> > My comments controller allows comments to be added to a post. Each
> > comment can also be voted on.
> >
> > class CommentsController extends AppController {
> > ...
> >   function add() {
> >     if(!empty($this->data)){
> >       $this->Comment->create();
> >       if($this->Comment->save($this->data)) {
> >         $comments=$this->Comment->find('all', array(
> >           'conditions'=>array(
> >             'post_id'=>$this->data['Comment']['post_id']),
> >             'recursive'=>-1));
> >         $this->set(compact('comments'));
> >         $this->render('add_success','ajax');
> >       }else{
> >         $this->render('add_failure','ajax');
> >       }
> >     }
> >   }
> >
> >   function vote($type=null,$id=null) {
> >     if($id){
> >       $votes=$this->Comment->vote($type,$id);
> >       $this->set(compact('votes'));
> >       $this->render('votes','ajax');
> >     }
> >   }
> >
> >    ...
> >
> > }
> >
> > add_success.ctp displays the comment just added.
> > add_failure.ctp displays an error message
> > votes.ctp displays the number of votes for the comment
> >
> > The posts view displays a post and allows comments to be added and voted
> > on through Js
> >
> > <h1><?php echo $post['Post']['name'];?></h1>
> > <hr/>
> > <?php echo $bbcode->parse($post['Post']['content']); ?>
> > <hr/>
> > <h2>Comments</h2>
> > <div id="comments">
> > <?php foreach($comments as $comment): ?>
> >   <div class="comment">
> >     <div id="vote_<?php echo $comment['Comment']['id'];?>">
> >       <div class="cast_vote">
> >         <ul>
> >           <li><?php echo $this->Js->link('up', array(
> >                          'controller'=>'comments',
> >                          'action'=>'vote', 'up',
> >                          $comment['Comment']['id']),
> >                          array('update'=>'vote_'.
> >                                $comment['Comment']['id']));
> >              ?>
> >           </li>
> >           <li><?php echo $this->Js->link('down',array(
> >                          'controller'=>'comments',
> >                          'action'=>'vote', 'down',
> >                          $comment['Comment']['id']),
> >                          array('update'=>'vote_'.
> >                                $comment['Comment']['id']));
> >               ?>
> >           </li>
> >         </ul>
> >       </div>
> >       <div class="vote">
> >         <?php echo $comment['Comment']['votes'];?>
> >       </div>
> >     </div>
> >     <p><b><?php echo $comment['Comment']['name'];?></b></p>
> >     <p><?php echo $comment['Comment']['content'];?></p>
> >   </div>
> > <?php endforeach;?>
> > <?php echo $form->create('Comment'); ?>
> > <?php echo $form->input('name', array('label'=>'Enter your name'));?>
> > <?php echo $form->input('content', array('label'=>'Enter your
> > comment'));?>
> > <?php echo
> > $form->input('post_id',array('type'=>'hidden','value'=>$post['Post']['id']));?>
> > <?php echo $js->submit('Add Comment', array('url' =>
> > array('controller'=>'comments', 'action' => 'add' ),
> > 'update'=>'comments')); ?>
> > <?php echo $form->end();?>
> > </div>
> >
> > Nothing startling here. With prototype, the vote count goes up and down
> > when the link is selected and added comments are displayed... but not
> > with JQuery.
> 


-- 
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

Reply via email to