簡體   English   中英

Yii2控制器中的額外參數ajax

[英]Yii2 extra parameter ajax in controller

我需要批量刪除網格。 我有jQuery腳本

  $activeMassScriptJS= <<<JS
  $(document).ready(function(){
  $("button.product-update").on('click',function(e){
            e.preventDefault;
            var keys = $('#products-grid').yiiGridView('getSelectedRows');
            $.get('mass-status-movie', {keylist : keys}, function(data) { alert(keys[0]);});
            return false;
    });
});

JS;

控制者

public function actionMassdelete(){
    if (Yii::$app->request->post('keylist')) {
        $keys = Yii::$app->request->post('keylist');
        foreach ($keys as $key) {
            $model = Product::findOne($key);
            $model->delete();
        }
    }
    return $this->redirect(Url::previous());
}

它為地址工作... /電影/索引,但我需要為地址工作/電影/索引?parameter = value怎么辦?

您似乎有混亂的代碼。 您的代碼正在向服務器發出get請求,但是您的操作(而不是將請求發送至該操作)正在檢查post參數! 您需要整理正在發出的請求,並相應地檢查值。 這是兩種情況;

情況1您將ajax調用保留為get請求,因此您的代碼是

$activeMassScriptJS= <<<JS
$(document).ready(function(){
$("button.product-update").on('click',function(e){
    e.preventDefault;
    var keys = $('#products-grid').yiiGridView('getSelectedRows');
    $.get('mass-status-movie', {keylist : keys}, function(data) { alert(keys[0]);});
    return false;
    });
});

通過get請求發送的值現在將以兩種方式可用。 在您指向的動作actionMassStatusMovie()actionMassStatusMovie() ,您可以像這樣訪問它們;

public function actionMassStatusMovie($keyList){
    //Your code here
}

如果您始終希望顯示keyList參數,則可以使用它。

您也可以在腳本的任何位置訪問get參數,例如: Yii::$app->request->get('keylist') 在這種情況下,您不需要$ keyList參數,因此您可以使用

public function actionMassStatusMovie(){
        $keyList = Yii::$app->request->get('keylist');
    }

情況二

或者,您可以通過post請求發送數據。 在這種情況下,您無需使用參數,只需像以前一樣檢查一下即可,

public function actionMassStatusMovie(){
        $keyList = Yii::$app->request->post('keylist');
    }

但是,為此,您需要更改原始的javascript代碼以發出post請求。

 $activeMassScriptJS= <<<JS
  $(document).ready(function(){
  $("button.product-update").on('click',function(e){
            e.preventDefault;
            var keys = $('#products-grid').yiiGridView('getSelectedRows');
            $.post('mass-status-movie', {keylist : keys}, function(data) { alert(keys[0]);});
            return false;
    });
});

getpost請求是不同的,並且您的代碼在使用方式上必須保持一致!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM