一個簡單的checkbox勾選存儲session

    public function actionAddtuisongid()
    {
        $id = $this->getRequestParam('id');
        if (!$id) {
            $this->ajaxReturn("", "勾選數據出錯", 0);
        }

        $sqinfo = $this->recommend->getOne("id=:id and disabled=:disabled", array(':id' => $id, ':disabled' => 0));
        if (empty($sqinfo)) {
            $this->ajaxReturn("", "未找到申請信息", 0);
        }

        if (1 == $sqinfo['is_tuisong']) {
            $this->ajaxReturn("", "該信息已被推送", 0);
        }

        $status = $this->getRequestParam('status');

        $session = Yii::$app->session;

        if ($session->isActive) {
            if (empty($session['tuisongid'])) {
                $tuisongids =  $session['tuisongid'] = new \ArrayObject;
            } else {
                $tuisongids = (array)$session['tuisongid'];
            }

            if ('true' == $status) {
                $tuisongids[$id] = 1;

            } else if ('false' == $status) {
                var_export($id);
                unset($tuisongids[$id]);
            }

            $session['tuisongid'] = $tuisongids; //注意賦值回來
        } else {
            $this->ajaxReturn("", "session未開啓", 0);
        }

//        var_export($tuisongids);
    }

前端:

    $(".zg_rc1 :checkbox").on("change",function(){
        // var $checkbox = $(this);
        // console.log($('input:checked').length);
        console.log($(this).val());
        console.log(this.checked);
        var id = this.value;
        var status = this.checked;
        $.ajax({
            type: "POST",
            url: "<?=Yii::$app->urlManager->createUrl('/Zhaopin/recommend/addtuisongid'); ?>",
            data: {"id" : id, "status" : status},
            dataType: "JSON",
            success: function ($data) {
                console.log(data);
            }
        })
    });

===========如果是批量===========================

 //勾選批量時
    public function actionAddtuisongids()
    {
        $ids = $this->getRequestParam('ids');

        $status = $this->getRequestParam('status');
        if (!$ids) {
            $this->ajaxReturn("", "勾選數據出錯", 0);
        }

        $session = Yii::$app->session;

//        unset($session['tuisongid']);die;

        $tuisongids = (array)$session['tuisongid']; // 50147 => 1

        $tuisongidsFlip = array_flip($tuisongids); // 1=> 50147

        if ('true' == $status) {
            $tuisongids = array_unique(array_merge($tuisongidsFlip, $ids));
            $tuisongids = array_flip($tuisongids);
        }

        if ('false' == $status) {
            $tuisongids = array_unique(array_diff($tuisongidsFlip, $ids));
            $tuisongids = array_flip($tuisongids);
        }

        $session['tuisongid'] = $tuisongids;
        var_export((array)$session['tuisongid']);
    }

批量前端

 function checkAll(o){

        var selectIds = [];
        var unselectIds = [];

        $('input[name*="id"]').attr('checked',o.checked);


        //勾選的
        if (o.checked == true) {
            $('input[name*="id"]:checked').each(function () {
                selectIds.push(this.value);
            });

            $.ajax({
                type: "POST",
                url: "<?=Yii::$app->urlManager->createUrl('/Zhaopin/recommend/addtuisongids'); ?>",
                data: {"ids" : selectIds, "status" : o.checked},
                dataType: "JSON",
                success: function ($data) {
                    console.log(data);
                }
            })
        }


        //未勾選的
        if (o.checked == false) {
            $('input[name*="id"]:not(:checked)').each(function () {
                unselectIds.push($(this).val());
            });

            $.ajax({
                type: "POST",
                url: "<?=Yii::$app->urlManager->createUrl('/Zhaopin/recommend/addtuisongids'); ?>",
                data: {"ids" : unselectIds, "status" : o.checked},
                dataType: "JSON",
                success: function ($data) {
                    console.log(data);
                }
            })
        }

        // finalIds = selectIds.filter(function(v){
        //     return unselectIds.indexOf(v) < 0 // 利用filter方法來遍歷去差集
        // });

        // console.log(finalIds);

    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章