2016-07-11 7 views
1

Ich möchte ein Array in die Quelle drucken. Hier ist mein Code.Wie man ein Array in der Quelle hinzufügt, während ich an der Autovervollständigung in yii arbeite 1

Controller:

public function actionAutocomplete() 
{  
     $user= new User; 
     $reg=User::model()->autocomplete(); 

     $this->render('autocomplete',array(
      'model'=>$user, 'auto'=>$reg, 
     )); 
} 

Modell:

public function autocomplete() 
    { 
     $rr = User::model()->findAll(array("select"=>"regname","order"=>"regname DESC")); 
     return $rr; 
    } 

Ausblick:

<H3>ZII WIDGETS</H3> 
<H5>Autocomplete Text Box</H5> 
<?php 
//print_r ($auto); 
$this->widget('zii.widgets.jui.CJuiAutoComplete',array(
    'name'=>'city', 
    'source'=>$auto, 
    // additional javascript options for the autocomplete plugin 
    'options'=>array(
     'minLength'=>'2', 
    ), 
    'htmlOptions'=>array(
     'style'=>'height:20px;', 
    ), 
)); 

?> 

Hier i $auto Array in Quelle im Hinblick hinzufügen wollen, ich habe Spaltendaten retrive und und erfolgreich zurückkehren. Was ist nun der nächste Schritt?

Antwort

0

Hallo Du alles gut zu tun, aber ein Problem ist, dass Ihre ganze User ModelObject als Source-juiwidget sind vorbei.

Nur soviel function im Modell ändern

public function autocomplete() 
    { 
     $rr = User::model()->findAll(array("select"=>"regname","order"=>"regname DESC")); 
$new = array(); 
    foreach($rr as $data){ 
     $new[] = $data->regname; 

    } 
return $new; 
    } 
+0

funktioniert gut thanx .. –

0

Ausblick:

$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
    'name'=>'city', 
    'value'=>'test21', 
    'source'=>$this->createUrl('<controllerName>/autocomplete'), 
    // additional javascript options for the autocomplete plugin 
    'options'=>array(
     'minLength'=>'2', 
    ), 
    'htmlOptions'=>array(
     'style'=>'height:20px;', 
    ), 
)); 

Controller:

public function actionAutocomplete() 
{  
     $user= new User; 
     $reg=User::model()->autocomplete(); 

     echo CJSON::encode(CHtml::listData($reg,'key_fieldname', 'value_fieldname')); 
     exit; 
} 
+0

funktioniert nicht .. :( –

+0

Ist ein Fehler? Können Sie bitte Konsole überprüfen? Oder versuchen Wert im JSON-Format –

+0

zurückzukehren, wenn ich das Array drucken Es zeigt die Daten, und wenn ich ein einfaches Array ('ac1', 'ac2') in der Quelle hinzufügen dann funktioniert es gut .... ich bin neu in yii, was nun zu tun? kein Fehler hier –