我正在尝试使用Yii2 controller/action
请求从jquery
向post
发送数据。
$('#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}}值。我错过了什么?
答案 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);
}