勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

JSからJSON形式のデータをfetchで投げてPHPで受け取り、PHPから返してJSで受け取る方法

   2026/10/06  PHP JavaScript

JavaScriptからPHPに対してJSON形式のデータをfetch通信でリクエストし、PHP側で何らかの処理をした後、JavaScriptに返したい。よくやる処理ではあるんだけどまとめていなかったのでメモ。

 

ソースコード

JavaScript側

const url = 'https://test.com/';
const data = {id: 1, name: '山田'};

fetch(url, {
    method: 'POST',
    body: JSON.stringify(data)
})
.then( (response) => {
    if (!response.ok) {
        throw new Error(response.status);
    }
    return response.json();
})
.then( (result) => {
    // 何らかの処理
})
.catch((error) => {
    console.error(`error: ${error}`);
});

PHP側

<?php
$data = json_decode(file_get_contents('php://input'), true);

// 何らかの処理

$result = [
    'status' => 'success',
];

header('Content-Type: application/json; charset=utf-8');
echo json_encode($result);
exit();

注意点

JSONで出力する際、キーにIDとかを入れると昇順でソートされる点に注意。並び順を指定したいような場合はPHP側でキーに何もいれない(0から割り当てていく)のが良いかと思う。IDをデータに含めたい場合はvalue側に入れること。

その他

GETでリクエストしたい場合

JavaScript側は以下で送信して、PHP側は「$_GET」で受け取るだけ。

// GET送信の場合
const data = new URLSearchParams({
    id: 1, 
    name: '山田'
});
const url = `https://test.com/?${data.toString()}`;
fetch(url, {})
.then( (response) => {
    if (!response.ok) {
        throw new Error(response.status);
    }
    return response.json();
})
.then( (result) => {
    // 何らかの処理
})
.catch((error) => {
    console.error(`error: ${error}`);
});

PHP間でデータを送受信したい場合

PHP間でデータを送受信したい場合は過去記事を参照。

 - PHP JavaScript

  関連記事

jQueryプラグインのDateTimePickerで年月日と時間のピッカーを実装する方法
jQueryプラグインのDateTimePickerで年月日と時間のピッカーを実装する方法

jQueryで年月日と時間を選択できるピッカーを導入したかった。以前にboots ...

バニラJavaScriptのDOMContentLoadedとは?
バニラJavaScriptのDOMContentLoadedとは?

jQuery等を用いない素のJSで書かれたプログラムを触る機会があり、そのソース ...

CSSとJavaScriptでテキストのコピー防止
CSSとJavaScriptでテキストのコピー防止

あるサイトで文言の意味が分からずGoogleで検索する為にコピペしようとするも、 ...

jQueryの「DateTimePicker」プラグインで日付や時間選択時に指定したイベントを実行させる方法
jQueryの「DateTimePicker」プラグインで日付や時間選択時に指定したイベントを実行させる方法

jQueryの「DateTimePicker」プラグインで日付や時間選択時、あら ...

IE11でフォーム送信時に二重登録される
IE11でフォーム送信時に二重登録される

Internet Explorer11でform送信時にデータが二重登録されると ...