[ Home ]
back

htmx, 行削除ボタンの確認部品表示

id: 60, 2024-08-08

概要:

前scrap続編で、htmx関連でjavascript書かずに、インタラクティブ機能追加メモになります。

  • 前のCRUD的参考に、一覧に削除ボタンを追加
  • 指定行、位置に、確認削除枠を表示し。さらに確認ボタンを押すと削除(API連携)

[ 作成日: 2024/07/16 ]


環境

  • htmx
  • Vite
  • React
  • react-dom
  • express

  • deleteボタン押下、確認枠「confirm ...」を、 hx-targetでレンダリングします。

  • 一覧
  • sample/api_test/src/pages/TestApi.tsx

https://github.com/kuc-arc-f/express_47htmx/blob/main/sample/api_test/src/pages/TestApi.tsx


  • hx-post: 確認部品html 呼び出す
  • hx-target: 指定位置に、htmlレンダリング
        <form className="my-0"
          hx-post="/api/test/render_confirm1"
          hx-trigger="submit"
          hx-target={`#resulte_text${item.id}`} >
          <input type="hidden" name="id" defaultValue={item.id} />
          <button type="submit"
          className="ms-2 bg-transparent hover:bg-purple-500 text-purple-700 font-semibold hover:text-white py-1 px-4 border border-purple-500 hover:border-transparent rounded"
          >Delete</button>
        </form>
        <div id={`resulte_text${item.id}`}></div>

  • API
  • sample/api_test/src/routes/test.ts

https://github.com/kuc-arc-f/express_47htmx/blob/main/sample/api_test/src/routes/test.ts


router.post("/render_confirm1", async function(req: any, res: any) {
  try {
console.log(req.body);
    const htm = htmConfirm1(req.body.id);
    res.send(htm);
  } catch (error) {
    console.error(error);
    res.sendStatus(500);
  }
});

  • 追加する、削除ボタンを配置する確認枠
  • sample/api_test/src/routes/test/renderHtml.ts

https://github.com/kuc-arc-f/express_47htmx/blob/main/sample/api_test/src/routes/test/renderHtml.ts


  • html出力します。
export function htmConfirm1(id: string){
  return `
  <div>
    <hr />
    <h3 class="text-3xl font-bold">Confirm, OK?</h3>
    <form
    hx-post="/api/test/delete"
    hx-trigger="submit"
    hx-target="#resulte_confirm${id}"
    >
      <input type="text" name="id" value="${id}" />
       <button type="submit">[ Delete ]</button>
    </form>
    <div id="resulte_confirm${id}"></div>
  </div>
  `;
}

書いたコード

https://github.com/kuc-arc-f/express_47htmx/tree/main/sample/api_test


GIF

https://x.com/kuc_arc_f/status/1813691232553693264