【问题标题】:Count checked checkbox(array) numbers & saving checked checkboxes计算选中的复选框(数组)数字并保存选中的复选框
【发布时间】:2014-09-24 09:53:01
【问题描述】:

我在 PHP 文件的表中有一个复选框数组,如下所示:

echo "<td $Blocked><input type =\"checkbox\" name=\"Blocked[]\" value=\"checkblock\" /></td>";

我正在尝试获取选中复选框数量的值并将其保存到数据库。

$Blocked = 'unchecked';

if ((isset($_POST['edit_tc']))) {
    if (isset($_POST['Blocked'])) {
        if (is_array($_POST['Blocked'])) {
            foreach($_POST['Blocked'] as $value) {
                error_log($value);
            }
        }
        else {
            $value = $_POST['Blocked'];
            error_log($value);
        }

        $Blocked = 'checked';
    }
}

“edit_tc”是提交按钮。

当用户选中复选框并单击提交按钮将其保存到表格列时,我如何获取它的数量?

【问题讨论】:

  • 此链接可能对您有所帮助:stackoverflow.com/questions/18382979/…
  • @William 非常感谢!我有另一个关于单击提交后如何保存选中复选框的状态的查询。
  • 您要保存逗号分隔的格式,例如 2,4,10,14 吗?
  • 我没有收到您的询问。我的意思是即使在单击提交后也希望保持复选框处于选中状态,或者更好的选择是隐藏单击并显示诸如“已阻止”之类的文本。
  • 对不起我的坏兄弟。你能告诉我你是如何在你的数据库中保存这些值的吗?

标签: javascript php checkbox


【解决方案1】:

我想下面的代码会解决你所有的问题。

<?php
$hello = array();
if(isset($_POST['submit'])) {
  extract($_POST);
  print_r($hello); //print all checked elements
}
?>

<form method="post">
    <input type="checkbox" name="hello[]" value="1" <?php if(in_array(1, $hello)){ echo 'checked'; } ?>>
    <input type="checkbox" name="hello[]" value="2" <?php if(in_array(2, $hello)){ echo 'checked'; } ?>>
    <input type="checkbox" name="hello[]" value="3" <?php if(in_array(3, $hello)){ echo 'checked'; } ?>>
    <input type="checkbox" name="hello[]" value="4" <?php if(in_array(4, $hello)){ echo 'checked'; } ?>>
    <button type="submit" name="submit" value="Submit">Submit</button>
</form>

您必须使用 PHP 的in_arrayfunction 检查复选框数组中每个复选框的值。

如果您需要了解全部内容,请告诉我。

很乐意为您提供帮助。

问候。

【讨论】:

  • 我没有使用不同的值。我在表数据 中使用单个值,即value=\"checkblock\",因此它显示为带有单个值复选框的列。
  • @BVenky,您是否使用多个具有相同值的复选框?
  • @Shaunak,是的,你是对的。但我在表格列中使用它。
  • 检查块是变量还是什么? @BVenky
  • @BVenky,是的,我可以看到 &lt;td&gt;checkbox&lt;/td&gt;.. 但是所有复选框都应该具有不同的名称和不同的名称!
【解决方案2】:

你可以用这个方法……

if ((isset($_POST['edit_tc']))) {
  if (isset($_POST['Blocked'])) 
  {
    $data = $_POST['Blocked'];
   foreach ($data as $checkedValue)
   {
     $qry = mysql_query("INSERT INTO `Table_name` WHERE `column_id` = '$checkedValue'");
   }
  }
}

这是用于将每个值保存为不同记录的方法...您可以根据需要进行修改。

【讨论】:

    【解决方案3】:

    您可以简单地使用 count() 函数来获取用户选中的复选框的总数。 因为只有那些复选框值被发布到用户检查的提交页面,如果复选框没有被选中,它的值将不会被提交。即提交的页面上将不存在未选中的复选框。

    使用:

        $totalCheckboxChecked=count($_POST['Blocked']);
    

    【讨论】:

      猜你喜欢
      • 2012-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 2012-01-20
      相关资源
      最近更新 更多