ajax octobercms传递id的值

时间:2015-04-19 14:27:40

标签: php ajax octobercms

 <button
            type="button"
            class="btn btn-small btn-danger icon-trash"
            data-request="onDeleteItem"
            data-control="popup"
            data-request-data="id: " <<<<<<<----
            data-trigger-action="enable"
            data-stripe-load-indicator>
</button>
Configurations.php::controller

中的

public function onDeleteItem()

如何在列表中获取id的值?我想列出表中的所有配置,有自定义列,编辑,删除

我想点击删除,然后它会删除该项目,但我如何获取ID?

2 个答案:

答案 0 :(得分:3)

我使用过这个(从RainLab.Blog插件中引用)并且它完美地运行:

<button
    class="btn btn-default oc-icon-trash-o"
    disabled="disabled"
    onclick="$(this).data('request-data', {
        checked: $('.control-list').listWidget('getChecked')
    })"
    data-request="onDelete"
    data-request-confirm="Are you sure?"
    data-trigger-action="enable"
    data-trigger=".control-list input[type=checkbox]"
    data-trigger-condition="checked"
    data-request-success="$(this).prop('disabled', false)"
    data-stripe-load-indicator>
    Delete all selected
</button>

你可以看到它在onClick处理程序中使用jQuery获取所有已检查的ID并将其传递给控制器​​。

然后在你的控制器中你可以这样做:

public function index_onDelete()
{
    if (($checkedIds = post('checked')) && is_array($checkedIds) && count($checkedIds)) {

        foreach ($checkedIds as $modelId) {
            if ((!$model = Model::find($modelId)))
                continue;

            $model->delete();
        }

        Flash::success('Successfully deleted those items.');
    }

    return $this->listRefresh();
}

请务必将model替换为您的实际型号&#39;。控制器方法名称上的index_前缀可确保我们在索引上下文中显示onDelete(显示模型列表的位置)。

答案 1 :(得分:0)

如果它在控制器的行动中

<?= $this -> id ?>

应该有效。或者你可以做类似

的事情
<?php
    $isDelete = $this->formGetContext() == 'delete';
?>

初始化它,然后将其用作

data-request-data="id: <?= (int) $isDelete ?>"

here