【问题标题】:How to save checked input checkboxes to MySQL?如何将选中的输入复选框保存到 MySQL?
【发布时间】:2014-07-06 17:18:30
【问题描述】:

我有一个复选框列表,并且它一直在增长,例如..

<li><input type="checkbox" value="19384">Nutrition</li>
<li><input type="checkbox" value="22450">Weight Loss</li>
<li><input type="checkbox" value="98957">Fitness</li>
<li><input type="checkbox" value="34916">Lifestyle</li>

假设我检查了 NutritionFitness,保存检查的数据库架构/结构以便我以后检索它的最佳数据库架构/结构是什么?

主要问题是这些复选框的数量总是在增加,所以这四个明天最多可以增加 7 个或 10 个复选框,并且会一直增加,所以我无法在数据库中为每个复选框值设置特定数量的表.

我不明白如何将检查的内容上传到数据库,然后再检索它们?

我是否可以将每个选定的值上传到 MySQL,然后在检索它们时,我必须在列表之间进行检查并与已上传到 MySQL 的值匹配,如果是这样,请使用 @987654323 @在输入?我也在用 PHP。

【问题讨论】:

  • 将它们存储为一个字符串,中间有一个分隔符
  • 我不会将它们存储为分隔符分隔列表。我建议为这些值使用单独的表格。

标签: php mysql checkbox


【解决方案1】:

复选框只是告诉您某事是否...等待它...检查与否。选中一个框可以得到一个可能的值,那就是该复选框已被选中。如果不检查,您将一无所获。

您需要做的第一件事是确保确实可以检查复选框的状态。这意味着您需要命名复选框并且不要在其中输入值。

<li><input type="checkbox" name="nutrition">Nutrition</li>
<li><input type="checkbox" name="weight_loss">Weight Loss</li>
<li><input type="checkbox" name="fitness">Fitness</li>
<li><input type="checkbox" name="lifestyle">Lifestyle</li>

现在将检查这些是否被检查的 php 看起来像:

if (isset($_POST['nutrition']))
{
    //Code to process nutrition being checked
}

就是这样 - 你为你拥有的每一个都这样做。

就数据库而言,既然您认为您将修改类型,那么您应该创建一个单独的表,将选中其中一个复选框的人与具有相关信息的另一条记录相关联。

例如,您有一个显示一个人的表格:

  • person_id = 自动递增的整数作为主键
  • person_name = string/nvarchar/whatever

那是 person 表。下一个表将是您的查找表:

  • c_pk = 自动递增整数作为主键
  • c_checkbox_id = 与另一个存储类型的表相关的整数 您拥有的复选框
  • c_person_id = 人的 id checkbox_id 涉及到

最后一个表格是包含复选框类型的表格:

  • checkbox_id = 自动递增整数作为主键
  • 复选框名称 = 表示复选框名称的字符串(营养、减肥、健身 等)

这就是您的布局方式,以便您可以随时添加更多内容。您还可以通过查询包含所有复选框名称的表来动态构建您的复选框列表。

如果您刚开始编程和数据库,这有点多,但它绝对是正确的方法。

【讨论】:

  • 您应该在复选框中添加一个值,并检查表单值是否与您设置的值匹配。即,
  • 出于什么原因需要添加值检查?
  • 一点也不太多,老实说,我对此非常满意.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 2014-07-07
  • 2012-03-15
  • 1970-01-01
  • 2016-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多