【问题标题】:Best way to start using jQuery in a Zend Framework 1.9 application?在 Zend Framework 1.9 应用程序中开始使用 jQuery 的最佳方式是什么?
【发布时间】:2010-12-09 15:59:39
【问题描述】:

我想在我的 Zend Framework 应用程序中开始使用 jQuery,但不确定哪种方法是最好的开始。我知道我可以像任何其他 javascript 库一样包含 jQuery 库,但是使用 ZendX_JQuery 有什么优势,以及在我的 Zend Framework 1.9 应用程序中开始使用它的必要步骤是什么?

【问题讨论】:

    标签: jquery zend-framework jquery-ui


    【解决方案1】:

    按照以下步骤,我能够让 jQuery 在我的 1.9.4 项目中工作:

    第 1 步:将 ZendX 目录复制到您的 library 目录中。 ZendX 可以在 Zend Framework 下载的 extras/library 目录中找到。

    第 2 步:从 jqueryui.com 下载 jQuery 和 jQuery UI 库。我选择了 UI Lightness 主题。

    第 3 步:解压缩下载并将 jquery-ui-1.7.2 重命名为 jquery 并移至您的 public/js 目录。

    第 4 步:将这些行添加到您的 bootstrap 文件中:

    protected function _initViewHelpers()
    {
        $view->addHelperPath("ZendX/JQuery/View/Helper", "ZendX_JQuery_View_Helper");
        $view->jQuery()->addStylesheet('/js/jquery/css/ui-lightness/jquery-ui-1.7.2.custom.css')
            ->setLocalPath('/js/jquery/js/jquery-1.3.2.min.js')
            ->setUiLocalPath('/js/jquery/js/jquery-ui-1.7.2.custom.min.js');
    }
    

    第 5 步:现在将 jQuery 视图助手添加到您的 layout 文件中:

    <head>
        <?php echo $this->jQuery(); ?>
    </head>
    

    第 6 步:要测试您是否一切正常,请将此行添加到您的查看脚本之一:

    Pick your Date: <?php echo $this->datePicker("dp1", '', array('defaultDate' => date('Y/m/d', time()))); ?>
    

    现在,如果您在浏览器中打开此页面,应该会出现一个文本字段。您应该能够单击文本字段,该字段会自动弹出一个样式为 UI Lightness 主题的日历。

    【讨论】:

      【解决方案2】:

      一点陷阱
      您必须将 ZendX 文件夹添加到您的 library 目录——该目录也包含您的 Zend 目录。

      [你的/lib/路径] | +-Zend | | | +-(完整的东西) | +-ZendX | | | +-JQuery,数据库,控制台,...

      如果您错过将 ZendX 添加到您的 library 目录,您会收到很多这样的错误消息:

      致命错误:未捕获的异常“Zend_Loader_PluginLoader_Exception” 在注册表中找不到消息“名称为“JQuery”的插件; 使用的路径: ZendX_JQuery_View_Helper_: ZendX/JQuery/View/Helper/ Zend_View_Helper_: Zend/View/Helper/: .....

      另一个小陷阱
      在上面 Andrew 提供的代码中,请注意突出显示的重要词:

      现在将 jQuery 视图助手添加到您的 layout 文件中: php echo $this->jQuery(); ?> 要测试您是否一切正常,请将此行添加到您的一个查看脚本: 选择你的日期:datePicker("dp1", ..... 代码>

      虽然$this-&gt;jQuery() 必须进入 layout 文件以便所有页面都获得 jquery 功能,但实际的 jQuery 代码必须进入 view 文件 本身 - application/views/scripts/yourcontroller/youraction.pthml - 仅此简单代码在布局中不起作用

      【讨论】:

        【解决方案3】:

        解决办法是——>

        protected function _initView()
        {
            $view = new Zend_View();
            $view->doctype('XHTML1_STRICT');
            $view->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8');
            $view->headTitle()->setSeparator(' - ');
            $view->headTitle('IMR - BI System');
            $view->env = APPLICATION_ENV;
            $view->baseUrl = Zend_Registry::get('config')->root_path;
        
            $view->addHelperPath("ZendX/JQuery/View/Helper", "ZendX_JQuery_View_Helper");
            $view->jQuery()->addStylesheet($view->baseUrl . '/js/jquery/css/south-street/jquery-ui-1.8.2.custom.css');
            $view->jQuery()->setLocalPath($view->baseUrl . '/js/jquery/js/jquery-1.4.2.min.js');
            $view->jQuery()->setUiLocalPath($view->baseUrl .'/js/jquery/js/jquery-ui-1.8.2.custom.min.js');
            $view->jQuery()->enable();
            $view->jQuery()->uiEnable();
            $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
            $viewRenderer->setView($view);
            Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
        
            return $view;
        }
        

        我刚刚将我的代码从 _initViewHelpers 转移到 _initView

        它对我有用。

        【讨论】:

          【解决方案4】:

          只是想补充一点,您必须(或至少我必须)在 _initViewHelpers 函数中启用 jquery 和 jquery 组件:

          $view->jQuery()->启用() ->uiEnable();

          【讨论】:

          • 通过在 Bootstrap 中启用 jQuery,您将在每个页面中包含 jQuery javascript(无论是否需要包含)。通过使用 jQuery 表单元素(例如),它会自动启用 jQuery,并包含必要的 javascript。仅在需要时才包含它可能更有效,但这取决于您。您可能决定要在每个页面上包含 jQuery。
          【解决方案5】:

          作为user117640伤心,

          我必须启用 jQuery 和 UI,可以在以下位置完成:

          引导:

          //it will enable for all views
          $view->jQuery()->enable()->uiEnable();
          

          控制器::someAction :

          //JQ enabled for particular view)
          $this->view->jQuery()->enable()->uiEnable();
          

          查看 someAction.phtml:

          //JQ enabled for particular view
          <?php $this-jQuery()->enable()->uiEnable(); ?>
          

          【讨论】:

            【解决方案6】:

            将此包含到您的引导文件中

            $view->addHelperPath("ZendX/JQuery/View/Helper", "ZendX_JQuery_View_Helper");
            $view->jQuery()->addStylesheet('/Your Public Path/js/jquery/css/ui-lightness/jquery-ui-1.7.2.custom.css')
                           ->setLocalPath('/Your Public Path/js/jquery/js/jquery-1.3.2.min.js')
                           ->setUiLocalPath('/Your Public Path/js/jquery/js/jquery-ui-1.7.2.custom.min.js');
            

            将此添加到您的布局中

            <head>
                <?php echo $this->jQuery(); ?>
            </head>
            

            并在您的视图文件中使用 jQuery UI 函数: 选择您的日期:

            <?php echo $this->datePicker("dp1", '', array('defaultDate' => date('Y/m/d', time()))); ?>
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2012-03-06
              • 2011-08-19
              • 2011-07-01
              • 2010-09-06
              • 2012-09-21
              • 2015-06-04
              • 2013-07-18
              相关资源
              最近更新 更多