2015-02-07 9 views
8

Sto tentando di utilizzare il widget di completamento automatico yii2 Jui.Yii2: Jui Auto Complete Widget come?

Ho questo codice che mostra correttamente la data di completamento automatico, ma non sono in grado di salvare i dati.

$data=ArrayHelper::map(State::find()->all(), 'id', 'state_name'); 
$data=array_merge($data); 

E poi

echo 'State' .'<br>'; 
    echo AutoComplete::widget([ 
    'model'=>$model, 
    'attribute' => 'state_id',  
    'clientOptions' => [ 
     'source' => $data,   
    ], 
]); 

Qualunque soluzione sarà molto apprezzato. Grazie.

risposta

8

Ok ho trovato la soluzione, va in questo modo:

use yii\jui\AutoComplete; 
use yii\web\JsExpression; 

Poi:

$data = State::find() 
    ->select(['state_name as value', 'state_name as label','id as id']) 
    ->asArray() 
    ->all(); 

Poi

echo 'State' .'<br>'; 
    echo AutoComplete::widget([ 
    'name' => 'State',  
    'id' => 'ddd', 
    'clientOptions' => [ 
     'source' => $data, 
     'autoFill'=>true, 
     'select' => new JsExpression("function(event, ui) { 
     $('#city-state_name').val(ui.item.id);//#City-state_name is the id of hiddenInput. 
    }")], 
    ]); 

e infine:

<?= Html::activeHiddenInput($model, 'state_name')?> 

Questo è tutto. Spero che qualcuno lo trovi utile. Grazie.

+0

Ciao, c'è un modo per implementare la convalida del modello basato sul campo di completamento automatico? Thx –

+0

Non dimenticare di installare JUI: https://github.com/yiisoft/yii2-jui – Ludo

Problemi correlati