Hi can anyone please tell me why the following code is only returning the single value 2,bath
The autocomplete action from my controller
public function groomappointserviceAction()
{
$this->_helper->layout->disableLayout();
$this->getHelper('viewRenderer')->setNoRender(true);
// get a list of all grooming services IDs and related procedures
$gqry= Doctrine_Query::create()
->select('g.groomServicesID AS iden , p.groomprocedure AS name')
->from('PetManager_Model_Groomservices g')
->leftJoin('g.PetManager_Model_Groo开发者_JAVA百科mprocedures p');
$result = $gqry->fetchArray();
//generate and return JSON string
$data = new Zend_Dojo_Data('iden',$result);
echo $data->toJson();
}
The filteringselect of my form
// Create a autocomplete select input for the grooming
$gservice = new Zend_Dojo_Form_Element_FilteringSelect('gapmtService');
$gservice->setLabel('Proceedure');
$gservice->setOptions(array(
'autocomplete' => true,
'storeID' => 'groomappointserviceStore',
'storeType' => 'dojo.data.ItemFileReadStore',
'storeParams' => array('url' => "/groomappointments/appointment/groomappointservice"),
'dijitParams' => array('searchAttr' => 'name')))
->setRequired(true)
->addValidator('NotEmpty', true)
->addFilter('HTMLEntities')
->addFilter('StringToLower')
->addFilter('StringTrim');
When the same (I Believe) query in MySQL returns
mysql> select g.groomservicesid AS iden , p.groomprocedure as name
-> from groomservices AS g LEFT JOIN groomProcedures AS p
-> on g.groomProcedure = p.groomProceduresID;
+------+--------------------------+
| iden | name |
+------+--------------------------+
| 2 | Bath |
| 7 | Bath |
| 8 | Bath |
| 9 | Bath |
| 1 | Nail Clip |
| 4 | Nail Clip |
| 5 | Nail Clip |
| 6 | Nail Clip |
| 19 | Shed Less |
| 20 | Shed Less |
| 21 | Shed Less |
| 22 | Shed Less |
| 13 | Dematting/Hand Stripping |
| 14 | Dematting/Hand Stripping |
| 15 | Dematting/Hand Stripping |
| 16 | Dematting/Hand Stripping |
| 17 | Dematting/Hand Stripping |
| 18 | Dematting/Hand Stripping |
| 3 | Bath Brush |
| 10 | Bath Brush |
| 11 | Bath Brush |
| 12 | Bath Brush |
+------+--------------------------+
22 rows in set (0.00 sec)
Ok I've actually sorted this by changing the code to that below. Not sure why it is now working as I tried this earlier but it didn't work.
My autocomplete action
public function groomappointserviceAction()
{
$this->_helper->layout->disableLayout();
$this->getHelper('viewRenderer')->setNoRender(true);
// get a list of all grooming services IDs and related procedures
$gqry= Doctrine_Query::create()
->select('g.groomServicesID, p.groomprocedure AS name')
->from('PetManager_Model_Groomservices g')
->leftJoin('g.PetManager_Model_Groomprocedures');
$result = $gqry->fetchArray();
//generate and return JSON string
$data = new Zend_Dojo_Data('groomServicesID',$result);
echo $data->toJson();
}
The FilteringSelect on my form
// Create a autocomplete select input for the grooming
$gservice = new Zend_Dojo_Form_Element_FilteringSelect('gapmtService');
$gservice->setLabel('Proceedure');
$gservice->setOptions(array(
'autocomplete' => true,
'storeID' => 'groomappointserviceStore',
'storeType' => 'dojo.data.ItemFileReadStore',
'storeParams' => array('url' => "/groomappointments/appointment/groomappointservice"),
'dijitParams' => array('searchAttr' => 'name')))
->setRequired(true)
->addValidator('NotEmpty', true)
->addFilter('HTMLEntities')
->addFilter('StringToLower')
->addFilter('StringTrim');
精彩评论