表格没有拿起javascript文件

时间:2011-12-01 04:40:33

标签: php cakephp

我是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');

2 个答案:

答案 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中并使用此调用来加载文件。