[英]Check checkbox based on postgres boolean
我有一個名為 form.ejs 的頁面,用戶可以在其中根據適用於他們的項目檢查復選框。
<div class="container">
<td class="td-form" class="td-form">
<div class="tooltipupc">
<input type="checkbox" id="repoLocationNaming" name="repoLocationNaming" value="<%= model.repoLocationNaming ? 'checked' : '' %>" onclick="checkboxTicked('repoLocationNaming', 1.85)">
<label for="repoLocationNaming" style="color:red">Repo location and Naming Convention</label><br>
</td>
</div>
<div class="container">
<td class="td-form" class="td-form">
<div class="tooltipupc">
<input type="checkbox" id="userGroupperMissions" name="userGroupperMissions" value="<%= model.userGroupperMissions ? 'checked' : '' %>" onclick="checkboxTicked('userGroupperMissions', 1.85)">
<label for="userGroupperMissions" style="color:red">User Groups (Read, Write, Reviewer)</label><br>
</td>
</div>
表單完成后,用戶可以根據選中的復選框將這些布爾值保存到 postgres 數據庫。 這些被保存到 postgres 數據庫中。 這是通過路由代碼中的函數完成的。
router.post("/", async (req, res) => {
const sql = "INSERT INTO Pipelines (slug, gear, app, url, score, rating, immatureCount, poorMaturityCount, maturingCount, matureUpQualifiedCount, chaosCount, rallyGitIntergration, pullRequestBasedEnablement, repoLocationNaming, userGroupperMissions) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15)";
const pipeline = [slugify(req.body.url, { lower: true, strict: true }), req.body.gear, req.body.app, req.body.url, req.body.score, req.body.rating, req.body.immatureAmt, req.body.poorMaturityAmt, req.body.maturingAmt, req.body.matureUpQualifiedAmt, req.body.chaosAmt, req.body.rallyGitIntergration, req.body.pullRequestBasedEnablement, convertCheckbox(req.body.repoLocationNaming), convertCheckbox(req.body.userGroupperMissions)];
pool.query(sql, pipeline, (err, result) => {
if (err) {
return console.error(err.message);
}
res.redirect(`/pipelines/${slugify(req.body.url, { lower: true, strict: true })}`);
});
function convertCheckbox(checkboxID){
if (checkboxID === "") {
return true;
} else {
return false;
}
}
});
當用戶返回表單時,我希望在等於 true 時使用檢查填充表單復選框。 例如,我可以像這樣填充輸入的 url。
<input required value="<%= model.url %>" type="text" name="url" id="url" style="width: 70%"><br>
下面是表單的獲取路徑,應該由用戶輸入的信息填充。
router.get("/edit/:id", async (req, res) => {
const idRating = req.params.id;
const sqlRating = "SELECT * FROM Pipelines WHERE pipeline_id = $1";
pool.query(sqlRating, [idRating], (err, result) => {
if (err) {
return console.error(err.message);
}
res.render("pipelines/edit", { model: result.rows[0] });
});
});
文件 form.ejs 包含在 edit.ejs 中。 當用戶訪問如上所示的路由 edit.js 時,我想檢查{ model: result.rows[0] }
中的復選框值是真還是假。 如果它們是真的,那么我希望選中該復選框。 如何檢查此布爾值並將其等同於選中的復選框?
<input type="checkbox" <%= model.repoLocationNaming ? 'checked' : '' %>
id="repoLocationNaming" name="repoLocationNaming"
onclick="checkboxTicked('repoLocationNaming', 1.85)>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.