Hans Hansson
Hans Hansson

Reputation: 1

jQuery not working with cakephp 2.0

I am currently working on a project where i wanna implement jQuery to cakephp 2.0.

I have followed the guide at: http://book.cakephp.org/2.0/en/core-libraries/helpers/js.html

i.e. I have downloaded jquery-1.8.1.js (also tried the .min.js file) and put it in app/webroot/js. In the default layout file i have added

echo $this->Html->script('jquery');

and just before the end of the body tag i have added

echo $this->Js->writeBuffer();

In my controller i have added

public $helpers = array('Js' => array('Jquery'));

When i reload my page and check the source code I see that the link to the jQuery file works correctly. But when I try to add a simple script (just adding an alert) like this (in the view file):

$alert = $this->Js->alert('Hey there');

nothing happens...

Any kind person out there that might have any suggestion to what I do wrong? I have spent hours looking looking at the internet and following different guides but still can get a simple thing as an alert working.

Upvotes: 0

Views: 2102

Answers (2)

Daniel
Daniel

Reputation: 445

As an alternative you can use scriptBlock:

$jscript = "alert('Hey there!');";
echo $this->Html->scriptBlock($jscript, array('inline'=>false));

Upvotes: 0

lukedays
lukedays

Reputation: 323

According to CakePHP 2.0 documentation: "by default, alert does not buffer, and returns the script snippet."

So by default:

echo $this->Js->alert('Hey there'); // outputs alert("Hey there");

To override this behaviour and add the script to the buffer:

echo $this->Js->alert('Hey there', true);

To write the buffer (commonly right before </body>):

echo $this->Js->writeBuffer();

Upvotes: 3

Related Questions