如何解决Zend_Dojo_Form_Element_ComboBox自动完成功能不起作用
|| 大家好,我无法发布此信息。 基本上,我有一个搜索页面,其中有一个Zend_Dojo_Form_Element_ComboBox。我想为此元素实现自动完成功能,但无法正常工作。搜索功能可以正常工作,我只需要输入文本即可。 我以为我的问题是在控制器中设置了autocompleteAction,老实说,我不确定这是如何设置的。由于我是Zend Framework的新手,所以我无法直言不讳。ZendFramework是我在网上找到的教程,其格式与我正在阅读的有关该主题的书的格式不同。public function autocompleteAction()
{
// disable layout and view rendering
$this->_helper->layout->disableLayout();
$this->getHelper(\'vieWrenderer\')->setnorender(true);
// get list of breed names from the breeds table
$qry = Doctrine_Query::create()
->select(\'b.breed\')
->from(\'PetManager_Model_Breeds b\');
$result=$qry->fetchArray();
//generate and return JSON string
$data = new Zend_Dojo_Data(\'breed\',$result);
echo $data->toJson();
}
如果这是我的实现,则元素本身是从我的表单类中提取的代码。
// Create a autocomplete inout for breed name
$breedname = new Zend_Dojo_Form_Element_ComboBox(\'breed\');
$breedname->setLabel(\'Search Breeed Names\');
$breedname->setoptions(array(
\'autocomplete\'=>\'false\',\'hasDownArrow\'=>\'true\',\'storeID\'=>\'breedStore\',\'storeType\'=>\'dojox.data.QueryReadStore\',\'storeParams\'=>array(\'url\'=>\"/breeds/breed/autocomplete\"),\'dijitParams\' =>array(\'searchAttr\' =>\'breed\')))
->setrequired(true)
->addValidator(\'NotEmpty\',true)
->addFilter(\'HtmlEntities\')
->addFilter(\'StringToLower\')
->addFilter(\'StringTrim\');
任何和所有帮助,不胜感激。
I.S.
解决方法
我认为您必须在Zend_Dojo_Data对象中添加标签和特定的元数据才能使用QueryReadStore。像这样:
//generate and return JSON string
$data = new Zend_Dojo_Data(\'breed\',$result);
$data->setLabel(\'breed\');
$data->setMetadata(\'numRows\',count($result));
echo $data->toJson();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。