2015-11-17 5 views
0

У меня есть выпадающее меню, которое имеет функцию обмена. После выполнения функции она меняет другое выпадающее меню. Мне нужно сделать так, чтобы он выполнял скрипт onload.Dropdown javascript onload

первый выпадающий:

echo $form->field($model, 'company_id')->dropDownList($items_company, ['prompt' => 'Select Company', 'style' => 'width:400px;', 'onchange' => ' 
      $.post("index.php?r=project/lists&id=' . '"+$(this).val(), function(data) { 
      $("select#project-client").html(data); 
      console.log("On change"); 
      console.log(data); 
      }); 

     ',])->label('Company'); 

второй выпадающий:

echo '<label class="control-label">Company Client</label>'; 
echo Select2::widget([ 
'model' => $model, 
'attribute' => 'client', 
'theme' => Select2::THEME_BOOTSTRAP, 
'options' => [ 'label' => 'Client', 
    'multiple' => true, 'style' => 'width:400px;', 'overwriteInitial' => true], 
'pluginOptions' => [ 
    'disabled' => false, 
], 
]); 

Это то, что я пробовал:

$(document).ready(function() { 
    var currentProjectCompany = $('#project-company_id').val(); 
    $.post("index.php?r=project/lists&id=' . '" + currentProjectCompany, function (data) { 
     $("select#project-client").html(data); 
     console.log("Company ID:"); 
     console.log(currentProjectCompany); 
     console.log("Clients"); 
     console.log(data); 
    }); 
}); 

ответ

1

Перемещение OnChange кода в отдельную функцию (она должна быть там в любом случае) и выполнить эту функцию в функции ready().

Таким образом он сработает как при замене, так и при загрузке.

+0

Я пробовал так:. ' ' Не работает. – Arthur

+0

Ну, это не то, что я сказал. Где независимая функция, где вы называете это уже? Это действительно не ракетостроение. – Shaun

0

Я делаю то же самое, что и мой код, это может вам помочь. Но я использую ajax и jquery.

Для первого выпадающего списка.

echo $form->dropDownListGroup(
        $model 'id', array(
       'wrapperHtmlOptions' => array(), 
       'widgetOptions' => array(
        'data' => abc::getName($model->id), 
        'htmlOptions' => array(
         'prompt' => 'Select Project', 
         'ajax' => array(
           'type' => 'POST', 
           'url' => (Yii::app()->createUrl('/' . $domain_name . '/qq/xyz/abc')), 
           'update' => '#seconddropdownid', 
           //'dataType' => 'json', 
           'data'=>array('id'=>'js:this.value'), 

          ) 
          ), 
         ), 
      ) 
      ); 

во втором раскрывающемся списке:

echo $form->dropDownListGroup(
       $project, 'tag', array(
      'wrapperHtmlOptions' => array(), 
      'widgetOptions' => array(
       'data' =>$this->getProjectTags(), 
       'htmlOptions' => array(
        'prompt' => 'Select Tags', 
       ), 
      ) 
       ) 
     ); 

об изменении второго списка вы можете обновить-список вид юй.