尽管设置了defaultvalue,但数据库中不会显示任何值

时间:2012-08-07 13:20:22

标签: php mysql html

 <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,不是吗?

我真的不想只为一排食物偏好而拥有一个完全独立的桌子 - 我确信我只缺少一些东西。

我可以就处理这个问题的最佳方法获得一些建议吗?

2 个答案:

答案 0 :(得分:1)

如果您执行的操作如下:(isset($_POST['dietarygut']))且未设置,则值为NULL并上传到数据库。发布您的PHP脚本

答案 1 :(得分:0)

您认为什么是默认值?使用HTML复选框,value属性表示默认值,而是选中框时将发送的值。如果未选中/未选中,则不会发送值“是”。

就像mlishn在他的回答中所说,你需要以编程方式检查是否设置了一个/两个框,如果是,请插入这些值。