#ajaxで値を渡せずにハマった話
###発生した問題
javascriptのajax通信でphpに連想配列を渡そうすると、$request->xxxや$_POST['xxx'],$reuqest->input['xxx']の方法を使ってもnullになって、手も足も出ませんでした。
###解決方法
エンコードが必要
var hoge = {
name : 'hoge'
}
$.ajax({
type: 'POST',
url: '1', //個人で変えてください
contentType: "application/json",
data: JSON.stringify(hoge),
dataType: 'text',
})
このように記述することで、phpで$request->nameで呼び出す事が出来ます。js側でエンコードした連想配列を渡しただけなので、おそらく、php側でのデコードも必要だと思いますが、とりあえず動いたので、後日調べようと思います...
投稿中に気づいたのですが、dataTypeをjsonにすると上手く動かないので、近いうちにこれも調べて追記しようと思います。
そもそもajax通信が初めてで、javascriptからphpに連想配列を渡したことがなく、エンコードとデコードが何かわかっていませんでした。
どこでも使えるような言語にするための翻訳みたいな役割らしい。
とりあえず、phpからjsなど別言語に連想配列や値を渡す際はエンコードやデコードが必要かどうかを考えたほうがよさそうです。