第 21 堂|用同一個案件編號更新進度
加入進度與順序篩選,用穩定id更新後重讀,再保留目前條件與正確筆數。
狀態顯示與實際值分開
狀態映射與結果數符合資料,PATCH使用所選id。
先準備
- 自己的service-site/frontend/admin-login.html、admin-cases.html、admin.js、config.js與styles.css
- 隨包API_CONTRACT.html與真實教學後端;只用虛構案件,不把密碼或Cookie貼給AI
- 兩筆不同id與狀態映射、排序前後與PATCH證據
畫面用中文名稱,請求用契約字串。排序與篩選改的是顯示順序,不是案件身份。
先分清自己的作品、線上畫面與可啟動參考包;線上參考不提供API,請在本機閱讀隨包OPEN_REFERENCE.html後操作。
一起拆解:排序位置不是案件身份
本關18分鐘觀念:3分鐘看輸入、6分鐘逐步推演、5分鐘正常與錯誤對照、4分鐘先預測再說明。
這次的輸入
原資料A、B;排序後B排第一,但點B仍應更新B。
顯示索引0 → 可能是B
穩定id QH-B → 永遠指B
PATCH /api/admin/cases/QH-B這段是觀念縮圖,完整可操作檔案在本關參考成果;請依當前階段判讀,不把片段直接貼到任意位置。
一步一步推演
- 先記兩案id、主旨與原狀態,改排序觀察位置。
- 事件帶row.id,狀態用pending/in_progress/completed,不拿顯示文字當API值。
- 更新B後重讀同id並核對A未變。
正常應看到
操作跟著id,排序不會改到另一案。
常見錯誤對照
把顯示第0筆對到原陣列第0筆,排序後可能更新A。
先預測,再說明原因
為何一筆案的id不能隨排序重編?
跟著觀察
- 先讀「排序位置不是案件身份」的輸入,指出本關實際檔案或資料。
- 為何一筆案的id不能隨排序重編?
- 依例子逐步說明正常結果與錯誤差別,再記下自己的預測;參考結果不是已完成的實測。
做完,自己確認
- 狀態映射與結果數符合資料,PATCH使用所選id。
- 能指出指定檔案與作用範圍。
讓案件有明確的進度
狀態映射與結果數符合資料,PATCH使用所選id。
先準備
- 自己的service-site/frontend/admin-login.html、admin-cases.html、admin.js、config.js與styles.css
- 隨包API_CONTRACT.html與真實教學後端;只用虛構案件,不把密碼或Cookie貼給AI
- 兩筆不同id與狀態映射、排序前後與PATCH證據
親手記兩筆id、主旨與原狀態,再選其中一筆更新。
跟著做
- 保留原同案,必要時seed兩筆虛構案供比較。
- 請AI加狀態/順序篩選、結果數及明細PATCH與重讀。
- 先反轉順序再更新指定id,確認另一案未變。
建立案件進度篩選與更新
主要使用 Cursor 內建 AI;先附資料,再送出指令。
- 1.附上這些檔案與資料
- 自己的service-site/frontend/admin-login.html、admin-cases.html、admin.js、config.js與styles.css
- 隨包API_CONTRACT.html與真實教學後端;只用虛構案件,不把密碼或Cookie貼給AI
- 兩筆不同id與狀態映射、排序前後與PATCH證據
- 2.貼到哪裡
- 在 Cursor 開啟自己的本關練習副本,進入內建 AI 對話;正常版與故障副本分開。
- 用 @ 附上本關指定檔案,核對完整路徑;補實際觀察、輸入與結果,再貼下方 Prompt。
- 先讀回覆與差異,只保存指定範圍;回到瀏覽器實際檢查。版本保存由自己操作,不讓 AI 代替驗收或提交。
- 3.預期回覆與操作
- 請AI加狀態/順序篩選、結果數及明細PATCH與重讀。
- 成功重讀同案,未選案不變,失敗不假保存。
- 4.自己檢查結果
- 狀態映射與結果數符合資料,PATCH使用所選id。
- 成功重讀同案,未選案不變,失敗不假保存。
建立案件進度篩選與更新 Prompt(可收合)
你是協助零基礎學員的網站開發助手。我使用 Cursor 免費版編輯原生 HTML、CSS、JavaScript;必要時把你提供的內容手動貼入檔案。
情境與本次輸入:沿用提供的Node教學後端與HttpOnly session cookie,前端fetch credentials:include,不把認證存在localStorage。POST /api/auth/login、GET /api/auth/me、POST /api/auth/logout;受保護GET /api/admin/cases回cases摘要,GET /api/admin/cases/:id回case明細,PATCH同路徑只接受status及/或internalNote。未登入401、找不到404、欄位422、教學更新失敗503。案件使用實際穩定id,從第18堂同案延續,不以不同預置案假串接。 狀態值pending=待處理、in_progress=處理中、completed=已完成,三者可互轉。用manage seed補兩個不同id虛構固定案,原第18堂案件保留。前端可依狀態及新舊順序顯示,但更新必須用所選id,不用顯示索引。
本次任務:依契約加入全部/pending/in_progress/completed篩選與結果數、新到舊/舊到新順序;明細可選三狀態,PATCH /api/admin/cases/:id只傳status,成功後GET同id核對再重讀列表。永遠用所選穩定id,pending防連點,失敗保留選擇與提示,不改其他案件、不存localStorage。保留身份與公開詢問,本關先建立基本流程,下關再限定保留當前篩選。列兩筆id、反轉排序、篩選後更新與503回歸。
請先閱讀我附上的相關檔案或資料,資訊缺漏時精確列出需要補充的項目,不猜檔名、API 或測試結果。說明以繁體中文撰寫,指出檔案與修改位置;檢查結果區分已知、待驗與未完成。只處理學生自己的練習副本,不改現有展示網站,不要求付費訂閱。Cursor AI 無法使用?改用 ChatGPT 備援
把上方指定的檔案內容、清單與補充資料,連同同一份 Prompt 貼入 ChatGPT 對話。只貼電腦上的路徑,無法讓它讀取你的檔案。
收到程式碼時,先核對檔名與修改位置,再手動存回自己的練習副本;若收到檢查表或補檔步驟,就逐項操作。不要把 Prompt 或程式碼框的反引號貼進 HTML/CSS。
兩邊都受限時,可先看既有參考成果、檢查差異與手動修改;未做過的 AI 生成或公開發布仍記待完成。不要貼入帳密、金鑰或真實個資。
複製只取得 Prompt 文字,檔案需自行在 Cursor 附上;本頁不會呼叫 AI 或自動完成關卡。
做完,自己確認
- 狀態映射與結果數符合資料,PATCH使用所選id。
- 成功重讀同案,未選案不變,失敗不假保存。
線上只看前端畫面;完整操作請下載。本頁不提供案件API。把參考包解壓到新的資料夾,先讀 OPEN_REFERENCE.html,再啟動隨包後端;不要覆蓋自己的作品或案件。
下載本關可啟動參考包列表、明細與筆數要同步
篩選與排序保留,列表與結果數同步。
先準備
- 自己的service-site/frontend/admin-login.html、admin-cases.html、admin.js、config.js與styles.css
- 隨包API_CONTRACT.html與真實教學後端;只用虛構案件,不把密碼或Cookie貼給AI
- 當前篩選、更新前後id與筆數
待處理更新成處理中後,會離開待處理列表。保留篩選,更新筆數並說明,不偷偷切回全部。
一起拆解:更新後保留篩選條件
本關18分鐘觀念:3分鐘看輸入、6分鐘逐步推演、5分鐘正常與錯誤對照、4分鐘先預測再說明。
這次的輸入
篩選待處理,選A改成處理中;排序仍為原設定。
pending清單 → PATCH A為in_progress
重讀A → 更新列表與筆數
篩選仍pending → A移出結果這段是觀念縮圖,完整可操作檔案在本關參考成果;請依當前階段判讀,不把片段直接貼到任意位置。
一步一步推演
- 先記篩選及排序值,確認目前筆數。
- 成功後重讀同id、重畫列表,不把條件全改回全部。
- 核對A移出待處理結果,明細若仍顯示A需說明狀態已改。
正常應看到
列表、筆數與同案明細一致,原篩選仍在。
常見錯誤對照
畫面先改成功但PATCH失敗,會把尚未保存當實際進度。
先預測,再說明原因
篩選仍待處理卻在列表留下A,哪個狀態需要同步?
跟著觀察
- 先讀「更新後保留篩選條件」的輸入,指出本關實際檔案或資料。
- 篩選仍待處理卻在列表留下A,哪個狀態需要同步?
- 依例子逐步說明正常結果與錯誤差別,再記下自己的預測;參考結果不是已完成的實測。
做完,自己確認
- 篩選與排序保留,列表與結果數同步。
- 能指出指定檔案與作用範圍。
更新後,保留正在看的條件
篩選與排序保留,列表與結果數同步。
先準備
- 自己的service-site/frontend/admin-login.html、admin-cases.html、admin.js、config.js與styles.css
- 隨包API_CONTRACT.html與真實教學後端;只用虛構案件,不把密碼或Cookie貼給AI
- 當前篩選、更新前後id與筆數
親手選待處理篩選,寫更新後預期少哪一筆。
跟著做
- 從待處理列表選一筆,記目前條件與結果數。
- 請AI只移除成功後重設全部的行為,保留篩選。
- 更新後確認移出、筆數及零筆同步,明細仍是同案且有說明。
保留案件更新後的篩選
主要使用 Cursor 內建 AI;先附資料,再送出指令。
- 1.附上這些檔案與資料
- 自己的service-site/frontend/admin-login.html、admin-cases.html、admin.js、config.js與styles.css
- 隨包API_CONTRACT.html與真實教學後端;只用虛構案件,不把密碼或Cookie貼給AI
- 當前篩選、更新前後id與筆數
- 2.貼到哪裡
- 在 Cursor 開啟自己的本關練習副本,進入內建 AI 對話;正常版與故障副本分開。
- 用 @ 附上本關指定檔案,核對完整路徑;補實際觀察、輸入與結果,再貼下方 Prompt。
- 先讀回覆與差異,只保存指定範圍;回到瀏覽器實際檢查。版本保存由自己操作,不讓 AI 代替驗收或提交。
- 3.預期回覆與操作
- 請AI只移除成功後重設全部的行為,保留篩選。
- 同案明細狀態正確,不符合時清楚說明移出。
- 4.自己檢查結果
- 篩選與排序保留,列表與結果數同步。
- 同案明細狀態正確,不符合時清楚說明移出。
保留案件更新後的篩選 Prompt(可收合)
你是協助零基礎學員的網站開發助手。我使用 Cursor 免費版編輯原生 HTML、CSS、JavaScript;必要時把你提供的內容手動貼入檔案。
情境與本次輸入:沿用提供的Node教學後端與HttpOnly session cookie,前端fetch credentials:include,不把認證存在localStorage。POST /api/auth/login、GET /api/auth/me、POST /api/auth/logout;受保護GET /api/admin/cases回cases摘要,GET /api/admin/cases/:id回case明細,PATCH同路徑只接受status及/或internalNote。未登入401、找不到404、欄位422、教學更新失敗503。案件使用實際穩定id,從第18堂同案延續,不以不同預置案假串接。 狀態值pending=待處理、in_progress=處理中、completed=已完成,三者可互轉。用manage seed補兩個不同id虛構固定案,原第18堂案件保留。前端可依狀態及新舊順序顯示,但更新必須用所選id,不用顯示索引。
本次任務:只改善更新成功後篩選一致性:保留status-filter原值與排序,不把它重設all。成功重讀列表和同id明細;若該案不再符合就移出目前列表,結果數/零筆同步,明細若仍顯示此案須說清楚已移出清單。不改API、資料、狀態值或選取id,失敗仍保留選擇。列待處理更新成處理中、零筆、全部與重載驗收。
請先閱讀我附上的相關檔案或資料,資訊缺漏時精確列出需要補充的項目,不猜檔名、API 或測試結果。說明以繁體中文撰寫,指出檔案與修改位置;檢查結果區分已知、待驗與未完成。只處理學生自己的練習副本,不改現有展示網站,不要求付費訂閱。Cursor AI 無法使用?改用 ChatGPT 備援
把上方指定的檔案內容、清單與補充資料,連同同一份 Prompt 貼入 ChatGPT 對話。只貼電腦上的路徑,無法讓它讀取你的檔案。
收到程式碼時,先核對檔名與修改位置,再手動存回自己的練習副本;若收到檢查表或補檔步驟,就逐項操作。不要把 Prompt 或程式碼框的反引號貼進 HTML/CSS。
兩邊都受限時,可先看既有參考成果、檢查差異與手動修改;未做過的 AI 生成或公開發布仍記待完成。不要貼入帳密、金鑰或真實個資。
複製只取得 Prompt 文字,檔案需自行在 Cursor 附上;本頁不會呼叫 AI 或自動完成關卡。
做完,自己確認
- 篩選與排序保留,列表與結果數同步。
- 同案明細狀態正確,不符合時清楚說明移出。
線上只看前端畫面;完整操作請下載。本頁不提供案件API。把參考包解壓到新的資料夾,先讀 OPEN_REFERENCE.html,再啟動隨包後端;不要覆蓋自己的作品或案件。
下載本關可啟動參考包顯示索引不能代替資料身份
PATCH id與點選一致,排序與篩選不影響身份。
先準備
- 自己的service-site/frontend/admin-login.html、admin-cases.html、admin.js、config.js與styles.css
- 隨包API_CONTRACT.html與真實教學後端;只用虛構案件,不把密碼或Cookie貼給AI
- fault-L21點選id、selectedIndex與錯誤PATCH URL、兩案前後
故障將selectedIndex拿去原陣列取id;排序或篩選後兩個位置不再相同。只修識別映射,不動資料遮掩。
一起拆解:用兩案證明修對身份
本關18分鐘觀念:3分鐘看輸入、6分鐘逐步推演、5分鐘正常與錯誤對照、4分鐘先預測再說明。
這次的輸入
故障更新使用篩選後索引回原資料找id,B排首卻改A。
錯誤:allCases[selectedIndex].id
正確:按鈕/事件原先帶入的穩定id這段是觀念縮圖,完整可操作檔案在本關參考成果;請依當前階段判讀,不把片段直接貼到任意位置。
一步一步推演
- 建立A與B的修改前狀態表,改排序重現錯案。
- 只改id映射;不要為湊正確結果停用排序或刪案。
- 重驗兩種排序、篩選及A/B重讀,保留最小差異。
正常應看到
指定B更新且A不變,原搜尋條件保留。
常見錯誤對照
只看B文字更新,未重讀A,可能漏掉已誤寫另一案。
先預測,再說明原因
修復驗收為何至少需要兩筆資料?
跟著觀察
- 先讀「用兩案證明修對身份」的輸入,指出本關實際檔案或資料。
- 修復驗收為何至少需要兩筆資料?
- 依例子逐步說明正常結果與錯誤差別,再記下自己的預測;參考結果不是已完成的實測。
做完,自己確認
- PATCH id與點選一致,排序與篩選不影響身份。
- 能指出指定檔案與作用範圍。
排序後,也不能改錯案件
PATCH id與點選一致,排序與篩選不影響身份。
先準備
- 自己的service-site/frontend/admin-login.html、admin-cases.html、admin.js、config.js與styles.css
- 隨包API_CONTRACT.html與真實教學後端;只用虛構案件,不把密碼或Cookie貼給AI
- fault-L21點選id、selectedIndex與錯誤PATCH URL、兩案前後
自己比較點選id、可見索引與PATCH的id。
跟著做
- 隔離fault-L21用兩筆虛構案重現誤改,保留原狀態。
- 請AI只把updateId回到傳入的id。
- 重新反轉排序與篩選,更新同案並核對他案未變。
修復混用列表索引與案件id
主要使用 Cursor 內建 AI;先附資料,再送出指令。
- 1.附上這些檔案與資料
- 自己的service-site/frontend/admin-login.html、admin-cases.html、admin.js、config.js與styles.css
- 隨包API_CONTRACT.html與真實教學後端;只用虛構案件,不把密碼或Cookie貼給AI
- fault-L21點選id、selectedIndex與錯誤PATCH URL、兩案前後
- 2.貼到哪裡
- 在 Cursor 開啟自己的本關練習副本,進入內建 AI 對話;正常版與故障副本分開。
- 用 @ 附上本關指定檔案,核對完整路徑;補實際觀察、輸入與結果,再貼下方 Prompt。
- 先讀回覆與差異,只保存指定範圍;回到瀏覽器實際檢查。版本保存由自己操作,不讓 AI 代替驗收或提交。
- 3.預期回覆與操作
- 請AI只把updateId回到傳入的id。
- 未選案不變,列表/明細重讀一致。
- 4.自己檢查結果
- PATCH id與點選一致,排序與篩選不影響身份。
- 未選案不變,列表/明細重讀一致。
修復混用列表索引與案件id Prompt(可收合)
你是協助零基礎學員的網站開發助手。我使用 Cursor 免費版編輯原生 HTML、CSS、JavaScript;必要時把你提供的內容手動貼入檔案。
情境與本次輸入:沿用提供的Node教學後端與HttpOnly session cookie,前端fetch credentials:include,不把認證存在localStorage。POST /api/auth/login、GET /api/auth/me、POST /api/auth/logout;受保護GET /api/admin/cases回cases摘要,GET /api/admin/cases/:id回case明細,PATCH同路徑只接受status及/或internalNote。未登入401、找不到404、欄位422、教學更新失敗503。案件使用實際穩定id,從第18堂同案延續,不以不同預置案假串接。 狀態值pending=待處理、in_progress=處理中、completed=已完成,三者可互轉。用manage seed補兩個不同id虛構固定案,原第18堂案件保留。前端可依狀態及新舊順序顯示,但更新必須用所選id,不用顯示索引。
本次任務:故障updateStatus用allCases[selectedIndex]?.id,排序/篩選後PATCH改到另一案。依附原列表、可見列表、點選id與請求,只把updateId改成傳入的穩定id,保留選擇、篩選、排序、重讀與身份。不改案件資料湊答案。列兩筆不同id、反轉排序、狀態篩選、503與未選案不變的回歸,故障資料只在隔離副本。
請先閱讀我附上的相關檔案或資料,資訊缺漏時精確列出需要補充的項目,不猜檔名、API 或測試結果。說明以繁體中文撰寫,指出檔案與修改位置;檢查結果區分已知、待驗與未完成。只處理學生自己的練習副本,不改現有展示網站,不要求付費訂閱。Cursor AI 無法使用?改用 ChatGPT 備援
把上方指定的檔案內容、清單與補充資料,連同同一份 Prompt 貼入 ChatGPT 對話。只貼電腦上的路徑,無法讓它讀取你的檔案。
收到程式碼時,先核對檔名與修改位置,再手動存回自己的練習副本;若收到檢查表或補檔步驟,就逐項操作。不要把 Prompt 或程式碼框的反引號貼進 HTML/CSS。
兩邊都受限時,可先看既有參考成果、檢查差異與手動修改;未做過的 AI 生成或公開發布仍記待完成。不要貼入帳密、金鑰或真實個資。
複製只取得 Prompt 文字,檔案需自行在 Cursor 附上;本頁不會呼叫 AI 或自動完成關卡。
做完,自己確認
- PATCH id與點選一致,排序與篩選不影響身份。
- 未選案不變,列表/明細重讀一致。
線上只看前端畫面;完整操作請下載。本頁不提供案件API。把參考包解壓到新的資料夾,先讀 OPEN_REFERENCE.html,再啟動隨包後端;不要覆蓋自己的作品或案件。
下載本關可啟動參考包留下自己的檢查紀錄
記下實際做過的操作、差異與結果。還沒做的項目寫「待完成」。
勾選與筆記只保存在這個瀏覽器。
重設只清除勾選,網站檔案與檢查筆記都保留。