В чем ошибка? YII2, jquery

470
02 февраля 2017, 02:31

Делаю проэкт на yii2. Есть форма из нескольких полей.
В первое поле(dropdown list(использую kartik dependent dropdown)) из БД берутся значения "type_of_goods". В зависимости от "type_of_goods" пользователь получает "goods" во вторую форму(тоже dropdown list).Выбираем товар.
После этого идут две формы(textinput): "goods_amount" и "total_cost", пользователь вводит в одну кол-во товара а во второй получает цену, или наоборот вводит кол-во денег, на которое хочет купить товар, и получает кол-во товара(goods_amount * price).
Значение "price" находится в БД -> таблице "goods" и каждый раз как пользователь вводит данные создается ajax-запрос для вычисления цены.
Правильный ли он для такой задачи? Выскавивает ошибка "missing ) after argument list", не могу понять почему и не могу понять работает этот код вообще.
Проше помочь.
Код:
VIEW

<?php $form = ActiveForm::begin([
        'options' => [
        'class' => 'form-horizontal col-lg-11',
        'enctype' => 'multipart/form-data'
        ],
    ]); ?>
<?= $form->field($type_of_goods, 'id')
    ->dropDownList(
        ArrayHelper::map(Type_of_goods::find()->all(), 'id', 'name'),      
        ['id'=>'type_of_goods_id']
    );
?>
<?= $form->field($goods, 'id')->widget(DepDrop::classname(), [
        'options' => ['id' => 'id'],
        'pluginOptions' => [
                'depends' => ['type_of_goods_id'],
                'placeholder' => 'Choose your goods',
                'url' => \yii\helpers\Url::to(['goods/goods-dep-type'])
        ]
    ]);
?>
<?= $form->field($goods, 'price')->textInput();    ?>
<?= $form->field($order, 'amount')->textInput();    ?>
<?php ActiveForm::end(); ?>  
// В ЭТОЙ ФУНКЦИИ ВЫБИВАЕТ ОШИБКУ "missing ) after argument list"  
$this->registerJs(" 
$('#price').on('change', function() {    // ID of a field where user writes something
    $.post('index.php?r=controller/get-price', {       // Controller name and action
        input_price: $('#Type_of_goods-price').val()   // pass parameter 'input_price'
    }, function(data) {
        total_price = $.parseJSON(data)['result'];     // controller returns: json_encode(['result' => $totalPrice]);
        $('#Type_of_goods-total').value = total_price; // Assign returned value to a different field that displays total amount of price
    }
});
");

CONTROLLER

public function actionGoodsDepType()
{
   $out = [];
    if (isset($_POST['depdrop_parents'])) 
    {
       $parents = $_POST['depdrop_parents'];
       if ($parents != null) 
       {
           $game_id = $parents[0];
           $out = \app\models\Goods::gelGoodsList($goods_type_id);
           echo Json::encode(['output' => $out, 'selected' => '']);
           return;
       }
    }
    echo Json::encode(['output' => '', 'selected' => '']);
}
public function actionGetPrice()
{
    $total_price = 10;  //для проверки
    echo Json::encode(['result' => $total_price]);
    return;
}

MODEL

public static function gelGoodsList($type_id)
{
    $query = self::find()
    ->where(['type_id' => $type_id])
    ->select(['id', 'name'])->asArray()->all();
return $query;
}
 public static function getPrice($id)
{
$query = self::find()
    ->where(['id' => $id])
    ->select(['price'])->asArray()->one();
return $query;
}
READ ALSO
Свойство object-fit: cover; для IE и Edge

Свойство object-fit: cover; для IE и Edge

Есть ли какая-то возможность заставить свойство object-fit: cover; работать с IE и Edge? Знаю что есть штука с названием Polyfill, не знаю что с ней делатьПомогите...

678
Padding, margin в Em

Padding, margin в Em

Необходимо для заголовка задать отступы в emОтносительно чего будет высчитываться margin? Относительно размера шрифта заголовка? Или его родителя?

408
Зачем нужен 4 конструктор std::bitset, когда есть 3?

Зачем нужен 4 конструктор std::bitset, когда есть 3?

Класс std::bitset имеет несколько конструкторовОдин из них (3) имеет вид:

396