【问题标题】:Checkboxes and MySQL复选框和 MySQL
【发布时间】:2014-06-11 19:28:30
【问题描述】:

不只是知道如何将复选框“插入”到数据库中的常见情况,我有一个带有多个复选框的表单......大约 25 个复选框,每个复选框具有相同的名称和 1-25 的值,现在问题是我需要它们具有相同的名称才能运行阻止选择不超过 4 个复选框的脚本...

HTML 代码

<input type="checkbox" name="ckb" id="EngineeringWorkshops" value=1 onclick='chkcontrol(0)';>
<label for="EngineeringWorkshop"> Engineering Workshops           </label>

PHP 代码

$engineeringworkshops = mysqli_real_escape_string($dbcon, $_POST['cob']); 


    $sql="INSERT INTO courses (studentid, engworkshops)
    VALUES ('$studentid', '$engineeringwokshops')";

engworkshops 列类型为 tinyint(4) 默认值设置为 0

【问题讨论】:

  • 问题是?
  • 使用同名肯定不行。您可以使用数组,但您也必须更改后端:name="ckb[SOME_ID]"name="ckb[]",如果您可以通过值唯一标识它们。
  • @jeroen 所以如果我使用不同的名称,我所要做的就是为每个复选框创建一个字段和一个类似于上面的 php 值?我应该使复选框值都相同吗?
  • @pawel7318 好吧,我在问它是否可能,如果可能的话……
  • @Azizi 我不太关心复选框的值,我通常使用像 name="ckb[1]" name="ckb[25]" 这样的唯一 ID,并在服务器端使用 isset() 来查看哪些被选中。

标签: php mysql forms checkbox scripting


【解决方案1】:

使用这样的html:

<form>
<input type='checkbox' name='data[]' value='YourId' /> Data
<input type='checkbox' name='data[]' value='AnotherId' /> AnotherData
<input type='checkbox' name='data[]' value='OneMoreId' /> OneMoreData
// others
</form>

如何在 php 中处理这些数据?

使用这个:

$engineeringworkshops = mysqli_real_escape_string($dbcon, $_POST['cob']); 
// handle data from checkboxes
foreach($_POST['data') as $item) {
    // do something in item
    $sql="INSERT INTO courses (studentid, engworkshops) VALUES ('$item', '$engineeringwokshops')";
}

【讨论】:

  • 您需要放回(唯一...)值或为每个复选框使用唯一 ID 以了解哪些已被选中。
  • 是的,id 无论如何都应该是唯一的(不仅在这种情况下)。我的答案中的代码将仅插入已选择的数据。 $_POST$_GET 将只包含选定的复选框 ID,不是吗?
  • 不,它将仅包含值,ID 不会发送到服务器。如果选中两个,它们将具有 0 和 1 的索引,但它可能是复选框 1 和 2、1 和 3 或 2 和 3。而且只有 3 个复选框...
  • 啊啊啊啊我的错。我知道我知道我知道,对不起。我混淆了valueid 的属性。我的错。我想,该睡觉了。谢谢你。我编辑了我的答案。对不起。
  • 不应该是$engineeringworkshops = mysqli_real_escape_string($dbcon, $_POST['data']); ?我必须定义 $item 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-27
  • 2013-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多