Autocomplete Zend\u Dojo\u表单\u元素\u组合框自动完成不工作
大家好,我把这个贴出来,因为我搞不懂。 基本上我有一个搜索页面,其中有一个Zend_Dojo_Form_Element_组合框。我想为这个元素实现自动完成功能,但它不起作用。搜索功能很好,我只需要输入文本 我认为我的问题是在我的控制器中设置自动完成功能,老实说,我不确定这是如何设置的。我还不熟悉Zend框架,我在网上找到的教程与我正在阅读的一本关于这个主题的书的格式不同,所以我无法动脑Autocomplete Zend\u Dojo\u表单\u元素\u组合框自动完成不工作,autocomplete,dojo,zend-form,Autocomplete,Dojo,Zend Form,大家好,我把这个贴出来,因为我搞不懂。 基本上我有一个搜索页面,其中有一个Zend_Dojo_Form_Element_组合框。我想为这个元素实现自动完成功能,但它不起作用。搜索功能很好,我只需要输入文本 我认为我的问题是在我的控制器中设置自动完成功能,老实说,我不确定这是如何设置的。我还不熟悉Zend框架,我在网上找到的教程与我正在阅读的一本关于这个主题的书的格式不同,所以我无法动脑 public function autocompleteAction() { // disable layou
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_数据对象添加标签和特定元数据,才能使用QueryReadStore。大概是这样的:
//generate and return JSON string
$data = new Zend_Dojo_Data('breed', $result);
$data->setLabel('breed');
$data->setMetadata('numRows', count($result));
echo $data->toJson();