2016-07-06 101 views
0

我正在嘗試使用post請求將數據從jquery發送到Yii2 controller/actionYii2。如何在控制器/操作json_decode()?

$('#inscr_create').click(function(){ 
    var box = {}; // my object 
    var boxes = []; // my array 
    $('div[id^=inscrbox]').each(function (index, value) { 
     var position = $(this).position(); 
     var top = position.top; 
     alert(top); 
     box = { 
      _top: top 
     } 
     boxes.push(box); 
    }); 
    alert(boxes.length); 
    var parameters = { 
     "boxes[]": boxes 
    }; 
    $.post(
     '/inscription/updatesession', 
     parameters 
     ) 
     .done(function(result) { 
      console.log(result); 
     }) 
     .fail(function(){ 
      console.log("server error"); 
     }); 
     return false; 
}); 

在我controller/action我:

public function actionUpdatesession() 
{ 
    $array = Yii::$app->request->post('boxes'); 
    echo count(json_decode($array[0],true)); 
} 

但經過這console我看到0。但我期望在array的框中看到_top的值從first element。我錯過了什麼?

+1

'在阿賈克斯request..buddy data'您可以使用Ajax請求

對於實例

回答

0

在您查看

var data = $("#formid").serialize(); 
    var keys = $('#gridid').yiiGridView('getSelectedRows'); // if you use grid 
    $.ajax({ 
     type: 'POST', 
     url: 'HeadersrequestController/actionApprove', 
     data: {data: data, keylist: keys}, 
     success: function (data) { 
        // some code 
     }, 
     error: function (data) { // if error occured 

      alert("Error occured.please try again"); 
     }, 
     dataType: 'html' 
    }); 
} 

在你的控制器 行動

if (Yii::$app->getRequest()->isAjax) { 
       $data = Yii::$app->request->post(); 
       var_dump($data); 

    } 
相關問題