yii2 передать две переменные в onchange - PullRequest
0 голосов
/ 12 октября 2018

У меня возникают проблемы при попытке передать две переменные в onchange в yii2.Приведенный ниже код не работает.

_form

    <?= $form->field($model, 'commodity')->dropDownList(
             ArrayHelper::map(['empty'=>'Empty string'], 'id', 'value'),
            [
             'prompt'=>'------- Select --------',
              'id'=>'pcommodity', 
              'disabled'=>"disabled", 
              'style' => 'width:250px',
              'onchange'=>
              '$.post("/import-conditions/plants/listsspecies?
               name='.'" +$(this).val(),function(data)
             {
                 $( "select#pspecies").html(data)

             })      

                 here is the problem  

            **$.post("/import-conditions/plants/listsintendeduse?name='.'"
           +$(this).val(),function(data)'.'+$(category).val(),function(data)
           {
             $( "select#pintendeduse").html(data)
            })**

           $.post("/import-conditions/plants/listsorigin?name='.'"
           +$(this).val(),function(data)
           {
             $( "select#porigin").html(data)
            }) 
             ;' 
            ])->label(false);?>

Эта информация формы передается контроллеру, вот код для контроллера.

public function actionListsintendeduse($name,$category)
    {
         $countMaindata= Plants::find()
                        ->where(['commodity'=> $name,'category'=>$category])
                        ->count();
         $maindata  = Plants::find()
                 ->select('intendeduse')
                 ->where(['commodity'=> $name,'category'=>$category])
                 ->orderBy(['intendeduse'=>SORT_ASC])
                 ->distinct()
                 ->all();
         if($countMaindata > 0)
         { 
              // echo '<option value="">Select intendeduse </option>';
             foreach ($maindata as $main)
             {
                 echo "<option value='".$main->intendeduse."'> ".$main->intendeduse."</option>";                
             }
         }else{
                 echo "<option> - </option>";
             }


    }

Iя пытаюсь передать две переменные и иметь фильтр контроллеров по этим двум переменным.

1 Ответ

0 голосов
/ 12 октября 2018

У вас есть синтаксическая ошибка

Попробуйте это

$.post(
    "/import-conditions/plants/listsintendeduse?name="
        +$(this).val() + "&category=" + $(category).val(),
    function(data) {
          $( "select#pintendeduse").html(data)
    }
)
...