Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

fetch template

phpでデータを取ってくる。

変数(parameter)と値(value)をsetDataに渡して、setDataToDB.phpでは例えばPDOでDBにデータをupdate(or insert)する。

setDataToDB.phpがもし戻り値としてデータセットを返す場合にはthen((json)の中で処理する。

fetchSample.js
function setData(paramater, value) {
    var res = fetch("./setDataToDB.php", {
        method: "POST",
        headers: {
            "Content-Type": "application/json",
        },
        body: JSON.stringify({
            "value": value
        })
     }).then((response) => {
        if(response.ok)
        return response.json(); // レスポンスをテキストとして変換する
    }).then((json) => {
        //console.log(json[0]["someParameter"]); //複数のデータセットが帰ってくる場合は0でない。
        //何らかの処理;
        return json[0]["otherParameter"]; //returnで返らない?
    });
}

fetchで取ってきた値を他の関数でも使いたい場合にはどうするの?

受信するphp

setDataToDB.php
<?php
$str_json = file_get_contents('php://input');
$json_obj = json_decode($str_json, true);

//データベース接続ーーーーーーーーーーーーーーーー
$dsn = 'mysql:dbname=データベース名;host=localhost';
$user = 'ユーザ名';
$password = 'パスワード';
$dbh = new PDO($dsn, $user, $password);

//SQL処理ーーーーーーーーーーーーーーーーーーーーー
$dbh->beginTransaction();
$stmt = $dbh->prepare("update テーブル名 set カラム名=:mode;");
$stmt->bindParam(':mode', $json_obj["value"], PDO::PARAM_STR);
$stmt->execute();
$dbh->commit();
$result = $stmt->fetchall(PDO::FETCH_ASSOC);

echo $result; //結果
?>
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away