添加到购物车按钮 Yii2

发布于 2025-01-11 06:39:52 字数 1356 浏览 0 评论 0原文

我想制作一个按钮,按下该按钮时将数据插入表名“cart”中 这是我在索引中的按钮

'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');
    }
}

我有这个错误

未捕获的引用错误:addProduct 未定义 在 HTMLButtonElement.onclick

I want to make a button that when it's pressed insert data into table name 'cart'
This is my button in 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}" . ');'
                            ]);
                    },

And this is my function

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');
    }
}

And I have this error

Uncaught ReferenceError: addProduct is not defined
at HTMLButtonElement.onclick

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

早茶月光 2025-01-18 06:39:52

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

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

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

就像那里:

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

function() {alert('按钮被点击!'); }); 是js函数。(内联注册脚本)

comment need 50 reputation, so I send answer.

if public function addProduct is a PHP function,

on click event is javascript event, maybe you must write a js function in page?

like there:

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

the function() { alert('Button clicked!'); }); is js function.(Registering inline scripts)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文