我有CJuiAutoComplete小部件工作正常,从表中获取数据并在下拉列表中显示 但是我希望将搜索到的数据显示在CJuiAutoComplete中。并为搜索的值填充/创建行。
我该怎么做?我搜索了很多,但我没有得到任何解决方案。
查看 -
<?php
$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
'id' => 'searchContact',
'name' => 'search_contact',
'source' => $this->createUrl('user/searchContact'),
'options' => array(
'showAnim' => 'fold',
),
'htmlOptions' => array(
'size' => '40',
'class' => 'form-control',
'placeholder' => 'Search E-mail contacts',
),
));
?>`
动作 -
public function actionSearchContact() {
$searchResult = array();
$user_id = Yii::app()->user->getId();
$term = trim($_GET['term']);
if ($term) {
$term = '%' . $term . '%';
$contacts = Contact::model()->findAll('email LIKE :email AND user_id = :user_id', array(
':email' => $term,
'user_id' => $user_id,
));
foreach ($contacts as $contact) {
$searchResult[] = array(
'label' => $contact->email, // label for dropdown list
'value' => $contact->email, // value for input field
'user_id' => $contact->user_id, // return value from autocomplete
);
}
echo CJSON::encode($searchResult);
}
Yii::app()->end();
}
答案 0 :(得分:2)
真正的解决方案:
因此,如果你真的愿意使用CJuiAutocomplete
来做,那么你需要解决扩展问题,根据你的需要进行自定义,默认情况下只需要一个下拉列表。
以下是清楚解释和定义如何操作的链接。
<强>替代:强>
您可以在文本字段中添加onkeypress
事件,在其上触发ajax请求,根据需要在ajax网址中准备结果并显示它。这将非常简单,并且可以节省定制CJuiAutocomplete扩展的开销。当然,这两种方法都需要相似的时间。
答案 1 :(得分:0)
[] [1] http://api.jqueryui.com/autocomplete/#event-change发现CJuiAutoComplete封装了JUI自动完成插件。
你可以在选项字段中使用它的事件..所以你可以使用[Link] [1]
中声明的所有事件[1]:http://www.yiiframework.com/doc/api/1.1/CJuiAutoComplete&#34; Link&#34;你只需要在
下使用它 'options' => array(
'showAnim' => 'fold',
),
数组..你可以使用
change: function( event, ui ) {}
完成任务。或者相同的人做你的事......