PHPとJavaScriptの間で変数の値をやり取りする方法
- 2019.08.28
- プログラミング
- Ajax, Fetch, JavaScript, PHP
目次
はじめに
PHPはサーバサイドプログラム、JavaScriptはクライアントサイドプログラムという構造上、PHPからJavaScriptへの渡し方は簡単ですが、JavaScriptからPHPへ渡す場合は、JavaScriptとPHPの関係を理解しないと難しいかもしれません。
PHP→JavaScript
PHPの変数をJavaScriptに渡す方法は簡単で、一旦、JSON形式に変換することで可能です。
<?php
$param = array(
"名前" => "山田太郎",
"住所" => "不定",
"電話番号" => "090xxxxxxxx"
);
$param_json = json_encode($param); //JSONエンコード
?>
<script>
var param = JSON.parse('<?php echo $param_json; ?>'); //JSONデコード
console.log(param);
</script>
JavaScript→PHP
逆にJavaScriptの変数をPHPに渡す場合は、クライアント(ブラウザ)側からサーバへデータを送らなければいけません。
とは言っても、それ用の方法があるので、それを使ってやってみましょう。
JavaScript側
const param = {
name: '山田太郎',
address: '不定',
tel: '090xxxxxxxx'
};
fetch('request.php', { // 第1引数に送り先
method: 'POST', // メソッド指定
headers: { 'Content-Type': 'application/json' }, // jsonを指定
body: JSON.stringify(param) // json形式に変換して添付
})
.then(response => response.json()) // 返ってきたレスポンスをjsonで受け取って次のthenへ渡す
.then(res => {
console.log(res); // 返ってきたデータ
});
サーバ(PHP)側
request.php
<?php
$raw = file_get_contents('php://input'); // POSTされた生のデータを受け取る
$data = json_decode($raw); // json形式をphp変数に変換
$res = $data; // やりたい処理
// echoすると返せる
echo json_encode($res); // json形式にして返す
上記のように、サーバへ送るだけではなく、サーバ側で処理した結果を返すことができます。
まとめ
JavaScriptとPHPはペアで使う事が多いので、どうしても変数のやりとりが必要になる事が多いですね。
それぞれのプログラムがどこで動いているのか、ブラウザで見ているページはどういう経路を経て表示されているのかを理解してプログラミングするとうまく変数を扱えるようになると思います。
JavaScript→PHPの方法では、Fetchというものを使ってデータをサーバに送っています。Fetchの詳しい使い方は以下の記事をご覧ください。
Fetchの使い方
Ajaxの使い方
-
前の記事
記事がありません
-
次の記事
JavaScript、PHP、JSONの配列・連想配列の表記の仕方の違い 2019.08.28
コメントを書く