[英]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;
});
});
get
和post
請求是不同的,並且您的代碼在使用方式上必須保持一致!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.