Yii2。如何在控制器/动作中使用json_decode()?

时间:2016-07-06 20:57:49

标签: jquery json yii2

我正在尝试使用Yii2 controller/action请求从jquerypost发送数据。

$('#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。但我希望在_top框中看到first element的{​​{1}}值。我错过了什么?

1 个答案:

答案 0 :(得分:0)

您可以使用ajax请求

例如

在你的视图中

    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);

    }