根据选中的复选框存储数组元素

Store the array elments based on checkbox checked?

本文关键字:复选框 存储 数组元素      更新时间:2023-09-26

我有一个无法解决的问题。部分原因是我无法用正确的术语来解释。我是新手,很抱歉问了这个笨拙的问题。

下面你可以看到我的目标概述。我在for循环中显示我的复选框。

这里我获取的是数组中的所有值,但我希望根据选中的复选框存储数组元素。

<?php 
    $j=0;
    $arr = Array();
foreach($collection as $data) {  
    $mageid=$data['mageproductid'];
    $products = Mage::getModel('catalog/product')->load($mageid);
    $productMediaConfig = Mage::getModel('catalog/product_media_config');       
    $checkeven=0;
        $arr[$j]=$products->getId();
        //echo $arr[$j];
    $j++;
} ?>

我的复选框代码:

 <form id="check_all" action="" method="POST" name="check" >
<input type="checkbox" class="multid[]" id="<?php echo $products->getId();?>"  value="checked" />  </form>

为了在数组中获得检查值,我必须做什么?我做错什么了吗?

使用输入名称属性

<input type="checkbox" name="multid[<?php echo $products->getId();?>]" value="checked" />

否,在php代码中,检查是否设置了multid[yourProductId],如果设置了,则存储它们。

<?php 
$j=0;
$arr = Array();
foreach($collection as $data) {  
$mageid=$data['mageproductid'];
$products = Mage::getModel('catalog/product')->load($mageid);
$productMediaConfig = Mage::getModel('catalog/product_media_config');       
$checkeven=0;
$arr[$j]=$products->getId();
if(!empty($_GET['multid['.$arr[$j].']']))
  its checked, do something.
//echo $arr[$j];
$j++;
} ?>

提交表单后,您可以获得带有$_POST['multid'] 的检查产品阵列

你能使用javascript吗?试试这个
HTML:

<input type="hidden" id="hdnCheckedIDs" value="" />

在提交之前,在提交按钮的客户端点击,Javascript:

var CheckedIDs = "";
for each checkbox
    if(document.getelementbyid('multid1').checked)
        CheckedIDs = CheckedIDs + document.getelementbyid('multid1').id;
document.getelementbyid('checkboxID') = CheckedIDs;

在PHP中,您可以使用这个逗号分隔的字符串$_POST['hdnCheckedIDs']来获取已检查支票箱的ID。