微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-根据Zend Framework提供额外的参数以自动完成

我有一个至少具有以下两个字段的表单:

>国家
>俱乐部

俱乐部是通过ZendX_JQuery_Form_Element_AutoComplete元素生成的字段,该元素还生成以下javascript代码

$("#club").autocomplete({"url":"\/mywebsite\/\/mycontroller\/autocomplete"});

我有每个国家/地区的俱乐部数据库.我想要的是仅退回指定国家(用户)的俱乐部.该列表应通过远程(ajax)调用来检索.该代码是:

 public function autocompleteAction()
    {
        $request = $this->getRequest();

        $filter = $request->getParam('q');
        $country = $request->getParam('country');

        $clublist = getClubListBySubstring($country, $filter);

        $this->_helper->autoComplete($clublist);
    }

我可能可以更改上述javascript代码,绕过ZendX_JQuery_Form_Element_AutoComplete完成的生成,并向URL中添加一个额外的元素,该元素被解释为参数country.

但是,还有更优雅的解决方案吗?我已经阅读了有关ExtraParams的内容,这行得通,怎么办?

解决方法:

这是使用服务器生成Javascript的“灰色地带”之一,可能会对您不利.自己编写客户端脚本将以多种方式使您受益:

>您将了解有关jQuery Autocomplete以及如何使用它的更多信息.
>您将更好地控制自动完成程序的行为.
>您的解决方案将减少对Zend框架的依赖,因此更加可移植.

在将ZendX_JQuery_Form_Element_AutoComplete作为端到端解决方案之前,我会熟悉addition parameters on the jQuery side of things.另外,如果您还没有读过Joel Spolsky的以下文章,即“泄漏抽象法则”,则可能需要阅读以下文章

http://www.joelonsoftware.com/articles/LeakyAbstractions.html

我已经实现了一个自动完成器(与ZF控制器操作绑定),并且完全意识到ZF的自动完成帮助器的存在,但是选择不使用它,因为我不想在其中进行细微调整的情况之一由于服务器上的代码生成工具不想播放,因此必须废弃整个解决方案.

希望那比烦人更有帮助.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐