0
Yii :: $ app-> request-> post()を使用してコントローラアクションでAJAX経由で投稿された$ _POST配列を読み込もうとしていますが、何か奇妙なことが起こります。ajax投稿データが読み込まれないyii2
の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()はこのように動作しますか?技術的な理由はありますか?
'post()'はここでうまくいきます。あなたの問題はあなたの行動に渡すデータにあります。アクションの '$ _POST' @の下にあるものを確認するだけです。 – Yupik