0
0

More than 3 years have passed since last update.

ajaxで連想配列を渡す際にハマった話

Posted at

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など別言語に連想配列や値を渡す際はエンコードやデコードが必要かどうかを考えたほうがよさそうです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0