Sziasztok!
Van valakinek tapasztalata a CJuiAutoComplete használatával?
A view-ban az alábbi kódot használom:
$this->widget('zii.widgets.jui.CJuiAutoComplete',
array(
'id'=>'autoCompField',
'name'=>'id',
'source'=>"js:function(request, response) {
$.getJSON('".$this->createUrl('myController/suggestName')."', {
term: extractLast(request.term)
}, response);
}",
'htmlOptions'=>array('placeholder'=>'Any'),
'options'=>array(
'delay'=>300,
'minLength'=>2,
'showAnim'=>'fold',
'select'=>"js:function(event, ui) {
var terms = split(this.value);
// remove the current input
terms.pop();
// add the selected item
terms.push( ui.item.value );
// add placeholder to get the comma-and-space at the end
terms.push('');
this.value = terms.join(', ');
return false;
}"
),
cssFile'=>false,
));
Controller:
public function actionSuggestName() {
// search keyword from ajax
$q = $_GET['q'];
$rows = array();
$sql = 'SELECT id, value FROM data_table WHERE `value` LIKE "%' . $q . '%"';
$rows = Yii::app()->db->createCommand($sql)->queryAll();
if ($rows) {
echo CJSON::encode($rows);
}
Yii::app()->end();
}
Amit próbáltam:
Külön a controller metódusát meghívva CJSON-nak megfelelő kimenetet kapok.
Böngészőben figyelve a hálózati hívásokat, a mezőbe gépelt szöveg sikeresen elküldése kerül (200-as kód Chromeban)
Visszatérési érték:
[{"id":"1","value":"text1"},{"id":"2","value":"text2"},{"id":"133","value":"text3"}]
Stackoverflow-n olvastam pár bejegyzést, hogy jquery hiba, meg hasonlók de egyik “megoldás” sem segített
Kínomban már ezt a kiterjesztést is kipróbáltam, de ugyan az az eredmény, a metódus önmagában hívható és jó értékekkel tér vissza, az AJAX hívás elmegy a metódusig, de utána nem jönnek vissza az adatok.
Előre is köszi a tippeket!
Tomi