Hi,
ich möchte in meinem Autocomplete, mehrere Felder darstellen, jedoch nur eins davon laden.
Beispiel: Jemand sucht nach BM, dann wird ihm folgendes angezeigt
Auto > Marke > BMW
Meinem autoComplete Action soll jedoch der Wert BM übergeben werden.
http://www.yiiframework.com/wiki/25/ konnte mir hierzu leider nicht weiterhelfen.
Hier mein Autocomplete
<?php echo CHtml::beginForm(array('engine/search'), 'get', array('name' => 'frm', 'autocomplete' => 'off'));?>
<?php $this->widget('CAutoComplete',
array
(
'name' => 's',
'value' => $sWert,
'url' => array('translation/autoCompleteLookup'),
'extraParams' => array('l' => 'js:function(){ return $("#carType").val();}'),
'minChars' => 2,
'delay' => 10,
'matchCase' => false, //match case when performing a lookup?
'htmlOptions' => array('size'=>'40'),
'formatItem' => "function(result, i, num, term){return result[0] + '' + result[1];}",
'methodChain' => ".result(function(event,item){\$(\"#phrase\").val(item[1]).parents(form).submit() ;})",
));
?>
<?php echo CHtml::hiddenField('phrase'); ?>
Mein AutoComplete
public function actionAutoCompleteLookup()
{
//Yii::app()->request->isAjaxRequest &&
if(isset($_GET['q']))
{
$sSearchphrase = $_GET['q'];
$iLimit = min($_GET['limit'], 50);
$oCriteria = new CDbCriteria;
$oCriteria->condition = "phrase_clear LIKE :phrase";
$oCriteria->params = array(":phrase" => "$sSearchphrase%");
$oCriteria->limit = 10;
$userArray = Engines::model()->findAll($oCriteria);
$returnVal = '';
foreach($userArray as $userAccount)
{
$returnVal .= $userAccount->getAttribute('language') . "|" . $userAccount->getAttribute('phrase')."\n";
}
echo $returnVal;
}
}
thx!