product-create.php 2.9 KB
<?php
    
    use common\models\ProductToProject;
    use common\models\Project;
    use common\modules\product\models\Product;
    use yii\helpers\Html;
    use yii\web\View;
    use yii\widgets\ActiveForm;
    
    /**
     * @var View             $this
     * @var Project          $project
     * @var Product[]        $products
     * @var ProductToProject $model
     * @var array            $variants
     */
    $this->title = 'Create product to project';
    $this->params[ 'breadcrumbs' ][] = [
        'label' => 'Products to project',
        'url'   => [
            'product',
            'id' => $project->project_id,
        ],
    ];
    $this->params[ 'breadcrumbs' ][] = $this->title;
?>
<div class="articles-create">
    <h1><?= Html::encode($this->title) ?></h1>
    <?php
        $form = ActiveForm::begin();
        echo $form->field($model, 'product_id')
                  ->dropDownList($products, [ 'prompt' => 'Выберите коллекцию' ]);
    ?>
    <div class="<?php echo( !empty( $variants ) ? '' : 'hidden' ); ?> product_variant_container">
        <?php
            echo $form->field($model, 'product_variant_id')
                      ->dropDownList($variants, [ 'prompt' => 'Выберите товар' ]);
        ?>
    </div>
    <?php
        echo Html::submitInput(($model->isNewRecord?'Добавить':'Обновить'), [ 'class' => 'btn btn-success' ]);
        $form::end();
    ?>
</div>
<script>
    $(
        function()
        {
            $(document).on(
                'change', '#producttoproject-product_id', function(e)
                {
                    var value = parseInt($(this).val());
                    var dropDown = $('#producttoproject-product_variant_id');
                    var container = $(dropDown).parents('.product_variant_container');
                    $(dropDown).find('option[value!=""]').remove();
                    $(container).addClass('hidden');
                    if(value)
                    {
                        $.get(
                            '/admin/project/get-variants?product_id=' + value, function(data)
                            {
                                if(data.length > 0)
                                {
                                    $.each(
                                        data, function(key, value)
                                        {
                                            $(dropDown)
                                            .append('<option value="' + value.product_variant_id + '">' + value.name + '</option>');
                                        }
                                    );
                                    console.log('hiodde');
                                    $(container).removeClass('hidden');
                                }
                            }
                        );
                    }
                }
            );
        }
    );
</script>