<p>Special Meal Request:<br />
<label>
<input type="checkbox" name="dietaryveg" value="yes" />Vegetarian
</label>
<label><input type="checkbox" name="dietaryglut" value="yes" />Gluten-Free
</label>
这就是我决定使用我创建的表单。我没有使用单选按钮,因为我只想要一个复选框;我没有给复选框添加相同的名称,因为它们是数据库中的不同列,因为用户可能需要素食和无麸质餐。
但是,当我在mysql workbench中提取数据库时,未选中的框仍然显示在列中没有值。然后我尝试将隐藏的复选框的值设置为no,并且它是默认选中的等等。但是这两个值在数据库中显示为no。
现在,我意识到php只关心一个复选框值,而不是一个未经检查的框值 - 但我认为如果我的数据库中有一个默认值,那应该在那里,就像一个NULL,不是吗?
我真的不想只为一排食物偏好而拥有一个完全独立的桌子 - 我确信我只缺少一些东西。
我可以就处理这个问题的最佳方法获得一些建议吗?
答案 0 :(得分:1)
如果您执行的操作如下:(isset($_POST['dietarygut']))
且未设置,则值为NULL
并上传到数据库。发布您的PHP脚本
答案 1 :(得分:0)
您认为什么是默认值?使用HTML复选框,value
属性不表示默认值,而是选中框时将发送的值。如果未选中/未选中,则不会发送值“是”。
就像mlishn在他的回答中所说,你需要以编程方式检查是否设置了一个/两个框,如果是,请插入这些值。