添加到购物车按钮 Yii2

Add to cart button Yii2

我想制作一个按钮,当它被按下时将数据插入 table 名称 'cart' 这是我在 index

中的按钮
'cart' => function ($url, $model, $key) {
                        $modelId = $model->id;
                        return Html::button('<i class="fas fa-shopping-cart"></i>',
                            [
                                'class' => 'btn btn-xs btn-outline-success',
                                'style' => 'width:80px; margin-top: 5px',
                                'data-toggle' => 'tooltip',
                                'title' => Yii::t('app', 'Cart'),
                                'onClick' => 'addProduct('. "{$modelId}" . ');'
                            ]);
                    },

这是我的职能

public function addProduct($id)
{
    $product = Product::find()->where(['id' => $id])->one();
    if (isset($product)) {
        Yii::$app->db->createCommand()->insert("cart", [
            "product_id" => $product->id,
            "name" => $product->name,
            "price" => $product->price,
            "image" => $product->image,
        ])->execute();
        Yii::$app->session->setFlash('success', 'Item added successfully');
    }
}

我有这个错误

Uncaught ReferenceError: addProduct is not defined at HTMLButtonElement.onclick

评论需要50声望,所以我发送回复。

如果public function addProduct是一个PHP函数,

on click事件是javascript事件,也许你必须在页面中写一个js函数?

喜欢那里:

$this->registerJs(
    "$('#myButton').on('click', function() { alert('Button clicked!'); });",
    View::POS_READY,
    'my-button-handler'
);

function() { alert('Button clicked!'); });是js函数。(Registering inline scripts)