我正在尝试使用" SELECT2"用YII扩展。我一步一步地按照教程,但它没有工作。自动完成的下拉列表不会出现,我在Chrome控制台中收到此错误...
控制器代码(HotelController)
public function actionTitleName(){
$model =HotelEn::model()->findAll ('Title like :Title',array(':Title'=>"%".$_GET['q']."%"));
$result = array();
foreach ($model as $HotelEn){
$result[] = array(
'id'=>$HotelEn->id,
'term'=>$RoomEn->Number,
);
}
echo CJSON::encode($result);
}
视图代码(_roomearch)
echo CHtml::beginForm(CHtml::normalizeUrl(array('Hotel/create')), 'get', array('id'=>'filter-form'))
. '<div class="row" style="width:100%;">'
. CHtml::encode('Hotel Name')
. CHtml::textField('Number',(isset($_GET['Number'])) ? $_GET['Number'] : '',array('id'=>'Number'));
$this->widget('ext.select2.ESelect2',array(
'selector' => '#Title',
'options' => array(
'allowClear'=>true,
'placeholder'=>'Select a Hotel Name',
'minimumInputLength' => 2,
'ajax' => array(
'url' => Yii::app()->createUrl('Hotel/Number'),
'type'=>'GET',
'dataType' => 'json',
'quietMillis'=> 100,
'data' => ' function(term,page) {
return {
//get im my controller
q: term,
};
}',
'results'=>'function(data,page) { return {results: data, more:more }; }',
),
),
));
echo '</div>'
答案 0 :(得分:3)
我今天遇到了同样的问题。我收到了&#34;未捕获的TypeError:对象[object Object]没有方法&#39; select2&#39;&#34;我的浏览器控制台中的错误消息以及有关我引用的另一个.js文件中已弃用的方法的警告(http://code.jquery.com/jquery-1.9.1.js)。事实证明我甚至没有使用它!所以我删除了引用它的脚本,删除了警告。
修复警告使我的select2问题消失了。
一些可以帮助您追踪错误的事情。
答案 1 :(得分:0)
您的文字字段id
和您的select2的selector
不匹配。您应该将selector
更改为#TitleName
或将文本字段id
更改为Title
。