按字母顺序搜索元素

时间:2014-04-03 07:34:52

标签: javascript php zend-framework

我正在编写一个函数来对搜索元素进行自动完成,但是当我搜索特定名称时,自动完成不会按字母顺序出现,这是我的模型和控制器中的代码。

这是我的模型我已经取消注释了订单行,因为它显示了选择时没有任何内容的下拉菜单,但是点击它可以看到没有标签/名称回显的id。像这样的某些代码给了我null值。例如

{

    public function getName($term)
    $select = $this ->select($term);  
      $select    ->where('name LIKE ?', '%'.$name)
                 ->order('name ASC')
      }            ->limit(0,20);

public function searchEnterprise($term)
        {
            $select = $this ->select()
                    ->where('name LIKE ?', $term . '%')
                    //->order('name')
                    ->limit(10);
            return $this->fetchAll($select);
        }

//控制器

public function acEnterpriseAction()
{
    $phrase = $this->getRequest()->getParam('phrase');
    $mdlEnt = new Model_Enterprise();
    $results = $mdlEnt->searchEnterprise($term);
    $arr_rtn = array();

        foreach($results as $result)
        {

            $myarr = array( 'label' => $result->name,
                            'value'    => $result->id,
                            'id' => $result->id                             

                            );
            array_push($arr_rtn, $myarr);
        }   
    echo Zend_Json::encode($arr_rtn);
}

2 个答案:

答案 0 :(得分:1)

尝试按名称命名json:

foreach($results as $result)
{
    $myarr[$result->name] = array('label' => $result->name,
                                  'value' => $result->id,
                                  'id'    => $result->id                             
                                  );
}   
ksort($myarr);

foreach($myarr as $name => $arr){
    array_push($arr_rtn, $arr);
}

echo Zend_Json::encode($arr_rtn);

并使用好的参数

调用searchEnterprise
$results = $mdlEnt->searchEnterprise($phrase);

答案 1 :(得分:0)

我在Jquery中给出了自动完成的链接,你可以引用Jquery并对Java Script进行一些更改。 Jquery autocomplete example