0

我正在尝试将 jQuery datepicker 添加到Zend_Form. 但它给出了两个警告和一个错误。我的示例代码:

$startdate = new ZendX_JQuery_Form_Element_DatePicker( 'startdate' );
$startdate->setLabel('Start Date')
          ->setRequired(true)
          ->setAttrib('size', '10')
          ->setDecorators($formJQueryElements);

错误:警告:include_once(ZendX/JQuery/Form/Element/DatePicker.php) [function.include-once]:无法打开流:/usr/local/ZendFramework/library/Zend/Loader 中没有这样的文件或目录。第 146 行的 php


警告:include_once() [function.include]:无法打开“ZendX/JQuery/Form/Element/DatePicker.php”以包含(include_path='/opt/lampp/htdocs/framework/students/application/../library: /opt/lampp/htdocs/framework/students/library:include_path = .:/usr/share/php:/usr/local/ZendFramework/library') 在 /usr/local/ZendFramework/library/Zend/Loader.php 上第 146 行


致命错误:在第 46 行的 /opt/lampp/htdocs/framework/students/application/forms/Student.php 中找不到类“ZendX_JQuery_Form_Element_DatePicker”

4

3 回答 3

4

ZendX 是一个额外的库,并未包含在 Zend Framework 的所有发行版中。确保您已经从Zend Framework 下载页面下载了标题中包含完整的发行版之一。

解压缩压缩文件后,您会在文件夹中找到ZendX库,将文件夹extras/library/ZendX复制ZendX到您保留当前文件夹的任何位置Zend(而不是 Zend 文件夹中),

就我而言,我将 Zend 框架库保存在:C:\Zend\ZendServer\share\ZendFramework\library. 所以我会在这个位置有 2 个文件夹ZendZendX.

Zend并且ZendX两者在自动加载器中都有默认命名空间,所以如果你将它们存储在同一个地方,如果一个工作,另一个工作。

或者...将两者都放入您的应用程序库中,例如:

/application
/library
    /Zend
    /ZendX

这也将起作用。

于 2012-08-01T02:12:01.170 回答
1

您使用 ZendX_JQuery_Form_Element_DatePicker 有什么特别的原因吗?我正在使用带有像这样的普通 Zend Form Text 元素的 jquery datepicker(来自 jquery ui 包)。

    // Add start_date element
    $start_date = new Zend_Form_Element_Text('start_date'); 
    $start_date->setLabel('Start Date')
          ->setRequired(true)
          ->setAttrib('class', 'datepicker')
          ->setDecorators($this->elementDecorators);
    $this->addElement($start_date);  

添加 'datepicker' 类是真正需要的。这回避了您遇到的问题 - 这似乎与 ZendX 库的使用有关。

于 2012-08-01T08:07:48.110 回答
0

我对 Zend 框架了解不多,但是 Zend 框架是 PHP 的服务器端技术,而 Jquery 是客户端技术。换句话说,Jquery 日期选择器工作与 Zend 框架之间没有直接关系。

您必须检查页面的 HTML 输出,包括与日期选择器一起使用的表单元素和页面中的 Javascript 包含文件。只需在浏览器中查看页面源,搜索缺少的内容。

于 2012-07-31T19:20:39.863 回答