Zendx JQuery自动完成

时间:2009-07-14 22:45:01

标签: php jquery zend-framework jquery-ui

当我注意到Zend documentation中的这一部分时,我一直在努力让Zend Jquery自动完成功能正常工作。

  

以下UI小部件可用作表单视图助手。确保使用正确版本的jQuery UI库才能使用它们。 Google CDN仅提供1.5.2版本的jQuery UI。 其他一些组件只能从jQuery UI SVN获得,因为它们已从宣布的1.6版本中删除

     

autoComplete($ id,$ value,$ params,$ attribs):AutoComplete View助手将包含在未来的jQuery UI版本中(目前仅通过jQuery SVN)并创建一个文本字段并将其注册为自动完成功能。完成数据源必须以jQuery相关参数'url'或'data'的形式给出,如jQuery UI手册中所述。

有人知道我需要下载哪个svn url标签或分支来获取带有自动完成功能的javascript文件吗?

目前,我的Bootstrap.php有

    $view->addHelperPath('ZendX/JQuery/View/Helper/', 'ZendX_JQuery_View_Helper'); 
    $view->jQuery()->enable();
    $view->jQuery()->uiEnable();
    Zend_Controller_Action_HelperBroker::addHelper(
        new ZendX_JQuery_Controller_Action_Helper_AutoComplete()
    );

    // Add it to the ViewRenderer
    $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
    $viewRenderer->setView($view);
    Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);

在我的布局中,我定义了我想要的jquery ui版本

<?php echo $this->jQuery()
    ->setUiVersion('1.7.2');?>

最后我的index.phtml有自动完成小部件

<p><?php $data = array('New York', 'Tokyo', 'Berlin', 'London', 'Sydney', 'Bern', 'Boston', 'Baltimore'); ?>
<?php echo $this->autocomplete("ac1", "", array('data' => $data));?></p>

我正在使用Zend 1.8.3 atm。

4 个答案:

答案 0 :(得分:1)

上次检查时,它位于dev branch

唯一的问题是,我不确定这是完整和准备好的,,如果它甚至适用于ZendX_Jquery。您可以在the progress of autoComplete on the official wiki page上保持最新状态。

答案 1 :(得分:1)

我从Till上面提供的链接导出代码并复制了ui.autocomplete。[js&amp; css]到我的ZEND应用程序的公共文件夹,进入一个名为'js / autocomplete'的子文件夹。

我的更新代码现在看起来像

Bootstrap.php:将额外的自动完成js脚本添加到页面

$view->jQuery()->addJavascriptFile('/js/autocomplete/ui.autocomplete.js'); 

layout.phtml:添加自动完成css和jquery主题,我也说要使用最新版本的jquery

<?php echo $this->jQuery()
    ->setUiVersion('1.7.2')
    ->addStylesheet('/js/autocomplete/ui.autocomplete.css')
    ->addStylesheet('/js/jquery-ui-1.7.2/development-bundle/themes/ui-lightness/jquery-ui-1.7.2.custom.css');?>

index.phtml:这是Zend文档中的复制粘贴代码示例。

<h3>AutoComplete</h3>
<p><?php $data = array('New York', 'Tokyo', 'Berlin', 'London', 'Sydney', 'Bern', 'Boston', 'Baltimore'); ?>
<?php echo $this->autocomplete("ac1", "", array('data' => $data));?></p>

像魅力一样工作。 : - )

你的最终html在head元素中应该有以下结构。

<link rel="stylesheet" href="/js/autocomplete/ui.autocomplete.css" type="text/css" media="screen" />
<link rel="stylesheet" href="/js/jquery-ui-1.7.2/development-bundle/themes/ui-lightness/jquery-ui-1.7.2.custom.css" type="text/css" media="screen" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
<script type="text/javascript" src="/js/autocomplete/ui.autocomplete.js"></script>

答案 2 :(得分:1)

我几乎投降让自动完成功能与ZendX一起工作。 然后我发现了这个:http://www.zendcasts.com/autocomplete-control-with-zendx_jquery/2010/07/

答案 3 :(得分:0)

我有同样的问题。我对ZendX/JQuery/Autocomplete.php文件进行了一些更改 更改以下行:

$params['source'] = $params['data'];

$params = $params['url'];

这对我有用。想与需要这个的人分享这个。

谢谢,
Decosian