0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JavaScriptのタスクフォーム作成

0
Posted at

JavaScriptでのタスクフォーム作成

タスクフォーム単体

  • id="task-card-${task.task_id}"は更新キャンセルの際に便利
  • 削除、更新ボタンにdata-id="${task.task_id}"を仕込んでおくと削除、更新する際に便利
<div class="col" id="task-card-${task.task_id}">
    <div class="card mb-3" style="width: 18rem;">
        <div class="card-body">
            <h5 class="card-title">${task.task_name}</h5>
            <h6 class="card-subtitle mb-2 text-body-secondary">締切: ${task.task_deadline}</h6>
            <h6 class="card-subtitle mb-2 text-body-secondary">状態: ${task.task_status}</h6>
            <p class="card-text">${task.task_detail}</p>
            <button type="button" class="btn btn-warning w-100 mt-2 updateButton" data-id="${task.task_id}">変更</button>
            <button type="button" class="btn btn-danger w-100 mt-2 deleteButton" data-id="${task.task_id}">削除</button>
        </div>
    </div>
</div>

tasks.forEachで作成した複数のタスクフォーム

  • 初期化のためlet htmlContent = '';
let htmlContent = '';
tasks.forEach(function(task){
    htmlContent += `
        <div class="col" id="task-card-${task.task_id}">
            <div class="card mb-3" style="width: 18rem;">
                <div class="card-body">
                    <h5 class="card-title">${task.task_name}</h5>
                    <h6 class="card-subtitle mb-2 text-body-secondary">締切: ${task.task_deadline}</h6>
                    <h6 class="card-subtitle mb-2 text-body-secondary">状態: ${task.task_status}</h6>
                    <p class="card-text">${task.task_detail}</p>
                    <button type="button" class="btn btn-warning w-100 mt-2 updateButton" data-id="${task.task_id}">変更</button>
                    <button type="button" class="btn btn-danger w-100 mt-2 deleteButton" data-id="${task.task_id}">削除</button>
                </div>
            </div>
        </div>
    `;
});

ソートや絞り込み後に再表示のために一度初期化

const list = document.getElementById('taskList');
list.innerHTML = '';

関数全体

function displayTasks(tasks){

    const list = document.getElementById('taskList');
    list.innerHTML = '';

    let htmlContent = '';
    tasks.forEach(function(task){
        htmlContent += `
            <div class="col" id="task-card-${task.task_id}">
                <div class="card mb-3" style="width: 18rem;">
                    <div class="card-body">
                        <h5 class="card-title">${task.task_name}</h5>
                        <h6 class="card-subtitle mb-2 text-body-secondary">締切: ${task.task_deadline}</h6>
                        <h6 class="card-subtitle mb-2 text-body-secondary">状態: ${task.task_status}</h6>
                        <p class="card-text">${task.task_detail}</p>
                        <button type="button" class="btn btn-warning w-100 mt-2 updateButton" data-id="${task.task_id}">変更</button>
                        <button type="button" class="btn btn-danger w-100 mt-2 deleteButton" data-id="${task.task_id}">削除</button>
                    </div>
                </div>
            </div>
        `;
    });
    list.innerHTML = htmlContent;
}

タスクフォームの表示

スクリーンショット 2026-07-10 8.35.41.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?