Yii2.0框架 列表页 通过 textInput 输入框失去焦点 ajax排序功能

5 篇文章 0 订阅

Yii2.0框架 列表页 通过 textInput 输入框失去焦点 ajax排序功能

下面已分类管理为例(最终效果)

在这里插入图片描述

1 视图部分

<?= TreeGrid::widget([
        'dataProvider' => $dataProvider,
        'keyColumnName' => 'id',
        'parentColumnName' => 'pid',
        'parentRootValue' => '0', 
        'pluginOptions' => [
        ],
        'columns' => [
            'id',
            'pid' => [
                'attribute' => 'pid',
                'value' => function ($model) {
                    return $model->pid == 0 ? '一级分类' : '二级分类';
                }
            ],
            'title',
            [
                'attribute' => 'sort',
                'label' =>'排序',
                'contentOptions' => ['style' => 'white-space: normal;', 'width' => '100px'],
                'content'=>function ($model){
                    return Html::textInput('sorts',$model->sort,['style'=>'width:100px;','class'=>'sortpro']);
                }
            ],
            'status' => [
                'attribute' => 'status',
                'value' => function ($model) {
                    return BaseParam::CodeHelper(BaseParam::$cateStatus, $model->status);
                }
            ],
            //功能
            [
                'class' => 'frontend\modules\common\models\ActionJsColumn',
                'template' => '{update}{cate-status}',
            ]
        ]
    ]); ?>

1、在columns里添加一下代码,复制上方代码段即可,样式可自行修改
在这里插入图片描述
2、js部分代码,验证规则可自行修改

<script>
    $(function () {
        $(document).on('blur', '.sortpro', function () {
            var id = $(this).closest('tr').data('key');
            var sort = $(this).val();
            if (!(/(^[1-9]\d*$)/.test(sort))) {
                alert("输入的不是正整数");
                location.reload()
                return false;
            }
            if(sort.length > 3){
                alert("输入值不能大于3位");
                location.reload()
                return false;
            }
            $.ajax({
                type : "get",    //请求类型
                url : "/resource/resource-classes/updatesort?id="+id+"&sort="+sort,//请求的 URL地址
                dataType : "json",//返回的数据类型
                success: function (data) {
                    layer.msg(data['data'], {icon: 1,time:500},function () {
                        location.reload()
                    });
                },
                error:function (data) {
                    alert(data.result);
                }
            });
        });
    })
</script>

2 控制器部分

//排序
    public function actionUpdatesort()
    {
        $id = (int)Yii::$app->request->get('id');//接收所排序的id
        $sort = (int)Yii::$app->request->get('sort');//获取sort值
        $data = ResourceClasses::find()->where(['id' => $id])->one();
        $data->sort = $sort;
        //不验证数据更新操作 false ,这里是Yii框架的属性,不需要验证数据字段时传false,有的时候保存不进数据库,可以传false,或者在模型中添加验证规则
        if ($data->save(false)) {
            return json_encode(['data' => '排序成功~~']);
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值