在这里和那里爬行之后,我试图在Yii中设置另一个自动完成的自动完成。
第一次自动完成效果很好! 对于第二个代码,代码缺少成功数据的部分我真的在那里如何将它“链接”到代码末尾的_renderItem ???。
任何帮助表示赞赏!
<?php
// First AUTOCOMPLETE
$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
'model'=> $model,
'attribute'=>'esarticle',
'value' =>$this->createUrl('Utility/autocomplete', array('id'=>'cpl_esarticle','model'=>'Entresortie')),
'source'=>$this->createUrl('Utility/autocomplete', array('id'=>'cpl_esarticle','model'=>'Entresortie')),
'options'=>array(
'focus'=> 'js:function( event, ui ) {
$( "#Entresortie_esarticle" ).val( ui.item.esarticle );
return false;
}',
'select'=>'js:function( event, ui ) {
$( "#Entresortie_esarticle" ).val( ui.item.esarticle );
return false;
}'),
'htmlOptions'=>array(
'size'=>12,
'maxlength'=>14,
'autofocus'=>'autofocus',
),));
// Second AUTOCOMPLETE
$quotedUrl = $this->createUrl('entresortie/cpl_eslot');
$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
'model'=> $model,
'attribute'=>'eslot',
'value' =>$this->createUrl('Utility/autocomplete', array('id'=>'cpl_eslot','model'=>'Entresortie')),
'source'=>'js:function(request, response) {
$.ajax({
url: "'. $quotedUrl . '",
data: { "term": request.term, "art":$( "#Entresortie_esarticle" ).val() },
success: function(data) { response(data); }
});
}',
'options'=>array(
'focus'=> 'js:function( event, ui ) {
$( "#Entresortie_eslot" ).val( ui.item.eslot );
return false;
}',
'select'=>'js:function( event, ui ) {
$( "#Entresortie_eslot" ).val( ui.item.eslot );
return false;
}'),
'htmlOptions'=>array(
'size'=>12,
'maxlength'=>14,
'autofocus'=>'autofocus',
),));
// Additional script to fill the autocomplete list
Yii::app()->clientScript->registerScript('input', '
$("#Entresortie_esarticle").data("autocomplete")._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>"+item.esarticle+"</a>")
.appendTo( ul );
};
$("#Entresortie_eslot").data("autocomplete")._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>"+item.eslot+"</a>")
.appendTo( ul );
};');
?>