在Zend Framework 1.9应用程序中开始使用jQuery的最佳方法是什么?

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

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

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

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

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

第4步:将这些行添加到引导程序文件中:

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视图助手添加到布局文件中:

  jQuery(); ?>  

第6步:要测试一切是否正常,请将此行添加到您的一个视图脚本中

 Pick your Date: datePicker("dp1", '', array('defaultDate' => date('Y/m/d', time()))); ?> 

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

一点点问题
您必须将ZendX文件夹添加到目录 – 也是Zend目录的目录。

 [你的/ lib目录/路径]
 |
 + -Zend
 |  |
 |  +  - (完整的)
 |
 + -ZendX
 |  |
 |  + -JQuery,Db,控制台,......

如果您错过将ZendX添加到目录中,则会收到大量错误消息,如下所示:

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

另一个小问题
在上面安德鲁提供的代码中,请注意突出显示的重要单词:

现在将jQuery视图助手添加到布局文件中:
 
     <?  php echo $ this-> jQuery();  ?>
 

 要测试一切是否正常,请将此行添加到您的一个视图脚本中 :  
 <代码>
选择你的日期:<?php echo $ this-> datePicker(“dp1”,..... 
 

虽然$this->jQuery()必须放在布局文件中,以便所有页面都能获得jqueryfunction,但实际的jQuery代码必须转到视图文件本身 – application/views/scripts/yourcontroller/youraction.pthml它不起作用在布局中只有这个简单的代码

解决方案是 – >

 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

它对我有用。

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

 $视图 - >的jQuery() - >启用()
             - > uiEnable();

由于用户117640伤心,

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

bootstrap:

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

controller :: someAction:

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

查看someAction.phtml:

 //JQ enabled for particular view enable()->uiEnable(); ?> 

将此包含在你的bootstrap文件中

 $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'); 

将此添加到您的布局

  jQuery(); ?>  

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

 datePicker("dp1", '', array('defaultDate' => date('Y/m/d', time()))); ?>