我是Cake PHP的新手,我有一个常规PHP和HTML的网站,但现在我正在开始使用Cake PHP。我遇到的问题是它没有拿起我在菜单上的滑块的javascript。 (但它适用于原始网站。)
所以我做了以下步骤,也许你可以看到我犯了错误。
首先,我将Javascript文件放在webroot/js
FILE javascript.js
/**
*
*/
$(document).ready(function() {
//ACCORDION BUTTON ACTION
$('div.accordionButton').click(function() {
$('div.accordionContent').slideUp('normal');
$(this).next().slideDown('normal');
});
//HIDE THE DIVS ON PAGE LOAD
$("div.accordionContent").hide();
});
然后我去了AppController并在cake/libs/controller/app_Controller
class AppController extends Controller {
var $helpers = array('Html', 'Form', 'Javascript');
}
然后,该更改允许我将其添加到布局
FILE mylayout.ctp
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<?php
$javascript->link('javascript.js');
</head>
<?php include 'menu_nav.php';?> //this has starting <body> tag
<?php include 'leftmenu_nav.php';?>
<div id="content" class="divContent">
<div id="mainContent" class="divMainContent" style="text-align: left;">
<?php echo $content_for_layout; ?>
</div>
</div>
<?php include 'footer.php';?> //this had end </body> tag
</html>
现在在
中的某个地方$content_for_layout
有一些<divs>
使用了JS,但由于某种原因1)我没有看到JS标记,当我做页面源和2)它没有像以前一样滑动..
任何人都可以告诉我这个CakePHP配置中我可能缺少什么?。
谢谢
echo $this->Html->script('javascript.js');
echo $this->Html->script('jquery-ui-1.8.16.custom.min.js');
echo $this->Html->script('jquery.js');
echo $this->Html->script('jquery.MetaData.js');
echo $this->Html->script('jquery.min.js');
echo $this->Html->script('jquery.rating.js');
echo $this->Html->script('jquery.rating.pack.js');
echo $this->Html->script('jquery.validate.js');
echo $this->Html->script('paging.js');
echo $this->Html->script('ui.datetimepicker.js');
echo $this->Html->script('format.js');
答案 0 :(得分:2)
您需要检查几件事。
首先,不要更改cake文件夹中的任何内容。这是一个很大的不,不。如果你想拥有一个app控制器,只需创建一个新文件名app_controller.php并将其放在你的/ app文件夹中。在其中添加以下代码。
class AppController extends Controller {
var $helpers = array('Html', 'Form', 'Javascript'); //what version are you using?
}
如何包含JS文件取决于您使用的蛋糕版本。较新的版本使用以下语法
<?php echo $this->Html->script('script'); ?>
http://book.cakephp.org/view/1589/script(1.3)
接下来,确保实际包含所有JS。查看源代码并单击JS文件以确认文件已加载。 我没有看到jquery包含在任何地方,所以你应该确认jquery包含在你的布局中。
之后,确认您的视图中包含div.accordionButton
div。由于它看起来不像布局,打开特定的视图元素并在那里签到。
作为最后的手段,在JS文件中添加alert($('div.accordionButton').length)
以确认JS实际上是从视图中获取DIV。如果警报显示0,那么这意味着它不是。
答案 1 :(得分:0)
您将要使用此格式,我将其插入我的layout.ctp。
echo $this->Html->script('jquery.min.flip.js');
我认为有不同的方法来调用js文件,但我将它们保存在/ app / webroot / js中并使用此调用来加载文件。