yii2

2014-04-22 10 views
7

में स्वतः पूर्ण करें Iii2 में जब मैं टाइप करना शुरू करता हूं तो मेरा इनपुट फ़ील्ड स्वत: पूर्ण होना चाहता है। नीचे मेरा कोड है जो Jui Autocomplete का उपयोग करता है।yii2

<?php 
    $items= ArrayHelper::map(Company::find()->all(), 'c_id', 'name'); 
    echo AutoComplete::widget([ 
    'model' => $model, 
    'attribute' => 'company', 
    'clientOptions' => [ 
    'source' => $items, 
    ], 
    ]);?> 

यह नहीं है working.When मैं अपने सरणी मुद्रित, मैं

Array ([1] => abc [2] => xyz [4] => pqr) 

की तरह मिल गया मैं यह काम कर रहा है जब मैं स्वयं की तरह

$items=['abc','xyz','pqr']; 

कारण हो सकता है सेट मिला मेरी c_id's आदेश नहीं दिया गया है? लेकिन मैं c_id मूल्य सबमिट करना चाहता हूं! कोई विचार यह कैसे ठीक करें?

+0

अच्छा सवाल, ऐसा लगता है कि आप – Alex

+0

@Alex धन्यवाद नहीं कर सकते! कृपया मेरे अपडेट किए गए प्रश्न http://stackoverflow.com/questions/23260636/autocomplete-options-from-database-yii2 –

उत्तर

12

यह एक छिपी हुई फ़ील्ड input.Hope इस किसी में मदद मिलेगी की मदद से हल किया जा सकता!

<?php 
    use yii\web\JsExpression; 

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

    echo AutoComplete::widget([ 
    'name' => 'Company', 
    'id' => 'ddd', 
    'clientOptions' => [ 
     'source' => $data, 
     'autoFill'=>true, 
     'minLength'=>'4', 
     'select' => new JsExpression("function(event, ui) { 
       $('#user-company').val(ui.item.id); 
      }") 
     ], 
    ]); 
    ?> 

    <?= Html::activeHiddenInput($model, 'company')?> 
+1

हाय डेंसी - मैंने आपके सुझाव के साथ ऑटो-पूर्ण विजेट का उपयोग करने का प्रयास किया है। यह ठीक काम कर रहा है, लेकिन अपडेट पर फ़ील्ड खाली दिख रहा है। क्या मुझे कुछ याद आ रही है? – Joshi

1

स्वत: पूर्ण आपको आवश्यक मूल्य के साथ फ़ील्ड भरने में मदद करता है। यदि आपको ड्रॉपडाउन सूची या चयन 2 प्लगइन को देखने के लिए c_id सबमिट करना होगा।

विचारों के लिए http://demos.krajee.com/widget-details/select2 yii2 विजेट देखें। यहां उदाहरण के कोड:

<?php 
    use kartik\widgets\Select2; 
    use app\models\Modelname; 

    $model = new Modelname; 

    $data = ['qwe1'=>'color1','key2'=>'color3'] 

    ?> 

    <?= Html::beginForm() ?> 

    <?= Select2::widget([ 
    'model' => $model, 
    'attribute' => 'color', 
    'data' => array_merge(["" => ""], $data), 
    'options' => ['placeholder' => 'Select a state ...'], 
    'pluginOptions' => [ 
     'allowClear' => true 
    ], 
    ]); ?> 

    <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?> 

    <?= Html::endForm() ?> 

यह भी ajax लोड डेटा का समर्थन करता है: http://demos.krajee.com/widget-details/select2#ajax

+0

अपने उत्तर के लिए धन्यवाद। लेकिन मैं इसे किसी भी एक्सटेंशन के साथ करना चाहता हूं। कृपया मेरा अद्यतन प्रश्न देखें। Http://stackoverflow.com/questions/23260636/autocomplete-options-from-database-yii2? Lq = 1 –