2017-11-23 9 views
0

国のドロップダウン・セレクトを組み合わせて、ajaxが実装された州のタイプ・アーヘッドと組み合わせたいが、苦労している。私はYii2のkartikの先行ウィジェットを使用していますが、インスタンスを破棄して再作成しようとしましたが、データをポピュレートしていません。Yii2ドロップダウン・ヴァルとkartik先読みを組み合わせる

<?php //country field 
       $datacountry = \app\helper\countries::getCountries(); 
       echo $form->field($client, 'country')->dropDownList($datacountry, ['prompt' => '-Choose a Country-', 
        'onchange' => '$("#county").val(""); 
      $.post("' . Url::to(['/state-search?country=']) . '"+$(this).val(), function(data) { 
       $("#county").typeahead("destroy");     
       $("#county").typeahead({local: JSON.parse(data)}); 

      }); 
     ']); 
       ?> 
<?php 


       echo $form->field($client, 'county')->widget(kartik\typeahead\Typeahead::className(), [ 

        'options' => ['placeholder' => 'Filter as you type ...','id'=>'county'], 
        'dataset' => [ 
         [ 
          'local' => [''], 
          'limit' => 10, 

          'datumTokenizer' => "Bloodhound.tokenizers.obj.whitespace('value')", 
          'cache' => false, 
          'display' => 'value', 
          'templates' => [ 
'suggestion' => new JsExpression("Handlebars.compile('{$template}')") 
          ] 
         ] 
        ],       
       ]); 
        ?> 

また、js変数をbloodhoundのリモートAPIに渡すことはできますか?

'remote' => [ 
            'url' => Url::to(['county-search']) . '?q=%QUERY', 
            'wildcard' => '%QUERY' 
           ], 

例えば

new JsExpression('$("#client-country").val()') 

答えて

0

たぶん、あなたはselect2ウィジェットを使用する必要がありますか?あなたはいくつかのデモを見ることができますhttp://demos.krajee.com/widget-details/select2

+0

残念なことに、選択肢にはタイプを自由にすることはできず、あらかじめ定義されたオプションのみを選択することができます。 – ShiftyThomas

関連する問題