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

Zend_Dojo_Form_Element_ComboBox自动完成功能不起作用

如何解决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 举报,一经查实,本站将立刻删除。