PHP根据MySQL数据库状态设置复选框勾选状态
解决方案
要根据数据库中存储的finish或pending值设置复选框的勾选状态,只需在复选框标签中动态添加checked属性即可,具体实现如下:
确认状态字段名:先确认数据库中存储
finish/pending的字段名称(示例中假设为status,请替换为你实际使用的字段名)。修改复选框代码:通过PHP判断数据库返回的状态值,若为
finish则为复选框添加checked属性,否则不添加。
优化后的查询代码(避免SQL注入风险)
<?php // 使用预处理语句防范SQL注入 $query = "SELECT * FROM ebook WHERE Eid=?"; $stmt = mysqli_prepare($con, $query); mysqli_stmt_bind_param($stmt, "s", $Eid); mysqli_stmt_execute($stmt); $result = mysqli_stmt_get_result($stmt); $rows = mysqli_fetch_assoc($result); ?>
修改后的页面显示代码
<input type="text" name="title" value="<?php echo htmlspecialchars($rows["Title"]); ?>"> <input class="tgl tgl-flip" id="chk" type="checkbox" name="chk" <?php echo ($rows["status"] === "finish") ? "checked" : ""; ?> />
关键说明:
htmlspecialchars()用于防范XSS攻击,输出用户输入的内容时建议添加。- 三元运算符
($rows["status"] === "finish") ? "checked" : ""会在状态为finish时输出checked属性,使复选框处于勾选状态;状态为pending时不输出该属性,复选框保持未勾选。 - 原查询代码存在SQL注入风险,推荐使用预处理语句优化。
内容的提问来源于stack exchange,提问作者Rohan Chooramun
相关产品推荐
相关产品推荐

