php - Yii/Bootstrap OnClick 执行 MySQL 查询

标签 php mysql twitter-bootstrap mysqli yii

我正在使用 Yii 和 Bootstrap。

我正在设置一个充满数据的表,如下所示:

$table_contents = array(
        ... irrelevant data...
        array(
            'name'=>'Action',
            'value'=>array($this, 'activateButton'),
            )       
        );

创建表:

$this->widget($table_view, array(
    'type'=>$table_type,
    'dataProvider'=>new CArrayDataProvider($prod_array),
    'columns'=>$table_contents,
    )
);

这是我在 Controller 中的按钮创建函数:

public function activateButton($data, $row)
{       
    $this->widget('bootstrap.widgets.TbButtonGroup', array(
        'size'=>'small',
        'type'=>'inverse',
        'buttons'=>array(
            array('label'=>'Deactivate', 
            )
        )
    ));
}

这一切都工作得很好,但我试图让按钮在按下按钮时执行 MySQL 更新命令,但我没有运气弄清楚我可以设置什么属性来执行此操作。我可以向 activateButton() 添加什么以使其在按下时执行查询?

最佳答案

首先,您应该将类​​和项目 ID 添加到您的 getter 中:

public function activateButton($data, $row)
{       
    $this->widget('bootstrap.widgets.TbButtonGroup', array(
        'size'=>'small',
        'type'=>'inverse',
        'buttons'=>array(
            array(
                'label'=>'Deactivate',
                'htmlOptions'=>array('class'=>'my-ajax-button','data-id'=>$this->id)
            )
        )
    ));
}

我不确定如何在该小部件中正确添加类,请查看文档。

然后你可以添加脚本到你的页面来进行ajax调用:

$url = $this->createUrl('your/ajax/url');
Yii::app()->clientScript->registerScript('initStatus',
    "$('.my-ajax-button').on('click','body',function() {
        el = $(this);
        $.post('$url', {id: el.data('id')}, yourJsCallback(data));
    });",
    CClientScript::POS_READY
);

您将在 $_POST['id'] 中获得记录 ID。

非常简单又漂亮。

关于php - Yii/Bootstrap OnClick 执行 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37867967/

相关文章:

css - 为什么按钮在使用相同类的特定 div 标签之间不起作用?

php - 允许页面仅在 iframe 中加载

php - 如何使用 php 中的 pid 终止 linux 进程?

mysql - 有没有办法在 MySQL 中创建用户特定表 "pointers"?

html - 将背景图像作为新部分添加到 Bootstrap 站点

javascript - 如何为每个轮播元素设置间隔持续时间?

PHP:同时理解 POST 和 GET 时遇到困难

php - 通过将包含文件保留在公用文件夹之外来提高 PHP 的安全性?

mysql - 如何根据col值进行选择

mysql - 无法根据两个条件两次 JOIN 同一张表