JS-switchery发送两个ajax请求而不是一个

时间:2017-07-20 11:53:21

标签: javascript jquery ajax yii2

我正在使用js-switchery来自定义我的复选框。 onchage复选框向控制器执行ajax请求,这就是我如何使产品(让我们说)活跃或无效。但是现在我的复选框每次更改时都会发送两个请求,结果我无法更改产品的状态(活动或非活动)。 AJAX:

function changeStatusActive(id, controllerName) {
    $.ajax({
        url: location.protocol + '//' + window.location.hostname + '/admin/' + controllerName + '/changestatusactive',
        method: "POST",
        data: {
            id: id,
        }
    });
}

控制器操作:

public function actionChangestatusactive() {
        if (isset($_POST['id']) and ! empty($_POST['id'])) {
            $model = Product::findOne((int) $_POST['id']);
            if ($model) {
                if ($model->active == 1) {
                    $model->active = 2;
                } else {
                    $model->active = 1;
                }
                $model->update();
            }
        }
    }

我的模特功能:

public function changeActiveForm() {
        $active = "";
        if ($this->active == 1) {
            $active = 'checked="checked"';
        }
        return '<label class="switchery switchery-default taCenter">
                <input type="checkbox" class="js-switch" data-color="#99d683" data-secondary-color="#f96262" value="1" id="check_' . $this->id . '" name="field_types" ' . $active . ' onchange="changeStatusActive(' . $this->id . ', \'products/product\');"></input>
                <label data-off="' . Yii::t('app', 'Не') . '" data-on="' . Yii::t('app', 'Да') . '" for="check_' . $this->id . '"></label>
                <span></span>
            </label>';
    }

0 个答案:

没有答案