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

时间:2013-08-07 05:57:59

标签: php javascript jquery checkbox

我遇到了无法解决的问题。部分是因为我无法用正确的术语来解释它。我是新手,对这个笨拙的问题感到抱歉。

您可以在下面看到我的目标概述。我在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>

为了在我的数组中获取选中的值,我该怎么办?我做错了吗?

3 个答案:

答案 0 :(得分:1)

使用输入名称属性

<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++;
} ?>

答案 1 :(得分:0)

提交表单后,您可以使用$_POST['multid']

获取一系列已检查的商品

答案 2 :(得分:0)

你能用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']来获取已检查的chekbox的ID。