如何根据数据库中的值将复选框设置为“已选中”?

时间:2018-12-01 09:17:43

标签: php arrays checkbox

我想为我的患者记录创建“编辑”功能。要求之一是选中复选框。我使用此代码将其插入数据库中

<div class="col-xs-12 col-sm-6">
   <input type="checkbox" value="Sulfa drugs" name="Allergic[]">  
   <label>Sulfa drugs</label> 

   <input type="checkbox" value="Aspirin" name="Allergic[]">                 
   <label>Aspirin</label>  

   <input type="checkbox" value="Latex" name="Allergic[]">&nbsp;                 
   <label>Latex</label> 
</div>

<?php
   $Allergic = implode(', ', ($_GET['Allergic']));
      $sql = "INSERT INTO history_table (allergic) VALUES ('$Allergic')";
?>

此代码成功运行。如果检查了数据就插入;只能作为一列中的字符串。

列 过敏-> 阿司匹林,乳胶

用户单击“编辑”按钮时,必须选中/选中已选中的复选框。

我尝试了这段代码,但是只有在选中了它的情况下,它才起作用,如果它是多个,则什么也没发生

<input type="checkbox" value="Aspirin" name="Allergic[]" 
<?php echo ($row['allergic']=='Aspirin')?'checked':'' ?>>

<input type="checkbox" value="Latex" name="Allergic[]" 
<?php echo ($row['allergic']=='Latex')?'checked':'' ?>>

希望有人可以帮助我,我已经为此工作了将近一天。谢谢!

2 个答案:

答案 0 :(得分:1)

请仔细阅读清理输入,准备好的语句,以及至少保护代码免受SQL Injection攻击的基本知识。现在,知道您的网站URL的任何人都可以通过几行代码来完全控制整个数据库。

话虽如此,您的问题很容易解决:

in_array('Aspirin', explode(", ", $row['allergic'])) ? 'checked' : '';

答案 1 :(得分:-2)

只需将您的逻辑放在标签中,然后根据您的逻辑回显“选中”,请参见下面的代码

<input type="checkbox" style="width: 20px; height: 20px;"  
class="checkme" name="checkme[]" 
id="checkme_'.$sub_sub_gap_row['sub_sub_gap_id'].'" 
value="'.$sub_sub_gap_row['sub_sub_gap_id'].'"';?>
<?php if(isset($_GET['sub_sub_gap_id'])){
$selected_topic_id = $_GET['sub_sub_gap_id'];
if($selected_topic_id == $sub_sub_gap_row['sub_sub_gap_id'])
{
echo 'checked';
}
}
?>
<?php
echo  '>';
相关问题