在PHP邮件中只发送一个复选框的值

时间:2013-06-21 16:53:02

标签: php magento

我正在使用一个带有foreach循环的脚本,这会显示正确数量的复选框,具体取决于Magento管理区域中设置的内容。

我面临的问题是可能有多个复选框,但只有最接近顶部的复选框是随表单发送的值。我需要选择要发送的所有复选框值。

这是我在邮件脚本中获取复选框值$check = $_POST['check'];

的内容

以下代码使用foreach显示正确数量的复选框。

 <?php
    $SKU = "1282670_01";
    $product = Mage::getModel('catalog/product')->loadByAttribute('sku',$SKU);
    if($product->getTypeId() == "configurable"){  
        $childs = $product->getTypeInstance()->getUsedProducts();  
    }
    $i = 0;
    foreach ($childs as $child) { ?>
    <?php $colour_name =  $child->getAttributeText('real_colour'); ?>
    <li class="notranslate focused" id="fo143li2">
    <fieldset>
    <div>
    <span>

    <img width="35" height="35" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $child->getSwatch() ?>">
    <input type="checkbox" style="margin-top:-10px;" onchange="handleInput(this);" tabindex="5" value="<?php echo $colour_name ?>" class="field checkbox" name="check" id="<?php echo $colour_name ?>">
    <label for="<?php echo $colour_name ?>" class="choice"></label>

2 个答案:

答案 0 :(得分:2)

您的所有复选框都具有相同的名称,因此只有一个复选框会显示在您的$_POST数组中。更改代码以使用唯一名称,或使用数组表单,即name="check[]"

答案 1 :(得分:0)

您只允许一个输入提交其名称的值(在单选按钮的情况下,它使用“on”中的任何一个),但是您可以通过更改名称将该键/值对转换为数组到check[]。每个check[]将合并为一个数组,并以name => ['value1', 'value2', 'value3']

提交

同样,你可以使用键而不是推到数组的末尾,比如 name="check[<?php echo $colour_name ?>]" value="true"和PHP会将其显示为array('red' => 'true', 'blue' => 'true')