2015-02-07 21 views
8

Tôi đang cố gắng sử dụng tiện ích tự động hoàn thành yii2 Jui.Yii2: Jui Auto Complete Widget làm thế nào để?

Tôi có mã này hiển thị ngày tự động hoàn thành chính xác nhưng tôi không thể lưu dữ liệu.

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

Và sau đó

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

Bất kỳ giải pháp sẽ được đánh giá rất nhiều. Cảm ơn.

Trả lời

8

Ok Tôi tìm thấy giải pháp, nó đi như thế này:

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

Sau đó:

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

Sau đó

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. 
    }")], 
    ]); 

và Cuối cùng:

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

Đó là tất cả. Hy vọng một số người sẽ thấy nó hữu ích. Cảm ơn.

+0

Xin chào, có cách nào để triển khai xác thực mô hình dựa trên trường tự động hoàn tất? Thx –

+0

Đừng quên cài đặt JUI: https://github.com/yiisoft/yii2-jui – Ludo

Các vấn đề liên quan