javascriptからPHPへのデータ送信

WordPressなんかでサイトを作成しているとき、javascriptを使っているとその処理で使っているデータをPHPに渡したい時とかありますよね。javascriptはクライアントサイドスクリプトで、PHPはサーバーサイドスクリプトのため処理をするタイミングが違います。サーバーサイドスクリプトはサーバーにアクセスがあった際に結果をクライアントに返し、クライアントサイドスクリプトはブラウザが処理をする時に実行されます。なので、ページを表示した時点でjavascriptの処理したデータをPHPの処理へ渡すことはできません。ですがjavascriptで処理したデータを次の処理へ渡してPHPで処理することはできます。つまり、javascriptのデータをGETとPOSTで送信してPHPで処理することができます。javascriptで処理した時点でそのデータは扱えませんが、これにより殆どケースで期待通りの処理が実行できるかと思います。
javascript側で処理したデータをGETもしくはPOSTした後にPHP側で以下の用にして受け取ります。

$data = (isset($_GET[‘data'])) ? esc_html($_GET[‘data']) : '';
or
$data = (isset($_POST[‘data'])) ? esc_html($_POST[‘data']) : '';

ちなみに、PHPのデータをjavascriptへ渡したい場合は以下のようにそのままjavascriptの変数へ代入できます。

var data = "<?php echo $data; ?>";

シェアする