Zend_Dojo_Form_Element_ComboBox автозаполнение не работает - PullRequest
0 голосов
/ 28 марта 2011

Привет всем, я отправляю это, поскольку я не могу понять это. В основном у меня есть страница поиска, на которой у меня есть Zend_Dojo_Form_Element_Combobox. Я хочу реализовать функцию автозаполнения для этого элемента, но он не работает. Функция поиска работает нормально, я просто должен набрать текст.

Я думаю, что моя проблема с настройкой действия autocompleteAction в моем контроллере, я буду честен, я не уверен, как это настроить. Я не могу разобраться, поскольку я новичок в Zend Framework, учебниках, которые я нашел в Интернете, и они имеют другой формат, чем книга, которую я читаю на эту тему.

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');

Любая помощь очень ценится.

многосекционный

1 Ответ

0 голосов
/ 26 мая 2011

Я думаю, что вы должны добавить метку и определенные метаданные для вашего объекта 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();
...