[英]ajax post data is not read yii2
我正在嘗試使用Yii :: $ app-> request-> post()在控制器操作中讀取通過AJAX發布的$ _POST數組,但是發生了一些奇怪的事情。
jQuery:
function renderGridView() {
var formId = $('#input-field :input[value!=""]');
// extract values. Make sure to send _csrf token
$.ajax({
url: "?r=value-search%2Fsearch", //this one works
method: 'POST',
data: {
searchData: formId.serializeArray(),
},
success: function(response) { //JSON array is returned.
/*$('#resultGrid').DataTable( {
data: [
response['provider']
],
columns: [
response['columns']
]
}); */
console.log(response);
}
})
}
`
PHP控制器動作:
public function actionSearch() {
$data = \Yii::$app->request->post('searchData');
$tt; $svalue;
if(count($data) === 0) {throw new UserException('data is emptry');}
echo var_dump($data);
}
這就是問題,上面的代碼運行正常。 但是,當我試圖echo $data
會拋出我的自定義UserException
“數據為空”,而不是PHP的“試圖將數組作為字符串傳遞”,這是我通常期望的。 是什么原因造成的? 為什么post()會這樣表現? 有技術原因嗎?
只是改變
data: {
searchData: formId.serializeArray(),
},
至
data:formId.serialize(),
你應該使用ActiveForm
使用模型來創建您的形式和名稱將被自動分配給輸入,其中包括該公約ModelName[field_name]
除了這個,你還沒有表現出你的形式,但在你的action
,你所得到的searchData
在post()
數組,因此我假設您將數據發布為
[
searchData=>[
field_1=>value,
field_1=>value,
field_1=>value,
field_1=>value,
]
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.