apprentice-team-3 / team-weekly-report

Team Weekly Reportのリポジトリです。
0 stars 0 forks source link

APIフォルダ内にpost.phpをつくってそこにjsでfetchするとJSでデータ渡せるかも〜 #315

Open YNSTakeru opened 5 months ago

YNSTakeru commented 5 months ago

src/api/post.phpにて作成

<?php
require_once __DIR__ . '/../DataSource.php';

use db\DataSource;
use model\ChildTask;

// jsで送られてきたデータを取得
$parent_task_id = 1;
$child_task_name = "送信した子タスク";
$child_task_comment = "子タスクコメント";
$child_task_progress = 30;

try {
    $db = new DataSource;
    $db->begin();

    $sql = 'INSERT INTO child_tasks (parent_task_id, title, content, progress) VALUES (:parent_task_id, :title, :content, :progress)';

    $db->execute($sql, [':parent_task_id' => $parent_task_id, ':title' => $child_task_name, ':content' => $child_task_comment, ':progress' => $child_task_progress]);

    $db->commit();

    echo '送信成功!<br>';

} catch(PDOException $e) {
    echo '時間をおいて再度お試しください。<br>';
    $db->rollback();
}

?>

まだテストなんで確定ではないです

YNSTakeru commented 5 months ago

動いたー gitバグったんでデータ吹っ飛ぶと怖いので避難所です src/api/post.php

<?php
require_once __DIR__ . '/../DataSource.php';

use db\DataSource;
use model\ChildTask;

// jsで送られてきたデータを取得

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

try {
    $db = new DataSource;
    $db->begin();

    $sql = 'INSERT INTO parent_tasks (project_id, user_id, title, progress) VALUES (:project_id, :user_id, :title, :progress)';

    $db->execute($sql, [':project_id' => $data["project_id"] , ':user_id' => $data["user_id"], ':title' => $data["parent_task_name"], ':progress' => $data["parent_task_progress"]]);

    $db->commit();

    echo '送信成功!<br>';

} catch(PDOException $e) {
    echo '時間をおいて再度お試しください。<br>';
    $db->rollback();
}

?>

child_task.model.php

src/models/child_task.model.php

jsファイルregisterBtnのクリックハンドラー内で

      fetch("http://localhost:8080/api/post.php", {
        method: "POST",
        body: JSON.stringify({
          "user_id": +userId,
          "project_id": projectId,
          "parent_task_name": parentTaskName,
          "parent_task_progress" : safeParentTaskProgress
        }),
      })
        .then((res) => {
          console.log(res);
        })
        .catch((e) => {
          console.error(e);
        })

views/member-task.php

                        <button class="btn transition__btn open__add__task__btn" data-user_id="<?php echo $user->id ?>" data-project_id="<?php echo $project->id ?>" >タスクを追加</button>

``
$user->idに変更

task-add-popup-content.php
```php
<form class="popup" id="task-add-popup" method="POST">

フォームにPOST追加しておいた方が安全?

YNSTakeru commented 5 months ago

https://github.com/apprentice-team-3/team-weekly-report/pull/316#pullrequestreview-1968615466

にレビューしてますー