How to display custom select option on product list page?

本文提供了一段用于Magento电子商务平台中产品的购物车添加功能的PHP代码示例。该代码展示了如何根据产品类型(例如配置型产品)构建表单以收集必要的用户输入,并根据这些输入将指定的产品添加到用户的购物车中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

here's the code"

add it to your list.phtml and chance your stylesheet

 

 

<?php if($_product->isSaleable()): ?>
    <form action="<?php echo Mage::getBaseUrl(); ?>checkout/cart/add/” method="post" id="product_addtocart_form_<?php echo $_product->getId() ?>"<?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>>
        <fieldset class="no-display">
            <input type="hidden" name="product" value="<?php echo $_product->getId() ?>" />
            <input type="hidden" name="related_product" id="related-products-field" value="" />
        </fieldset>

<?php // Product options ?>

    <?php $product = Mage::getModel('catalog/product'); ?>
    <?php $product->load($_product->getId()); ?>

<?php // Configurable products ?>

    <?php if($product->getTypeId() == "configurable"): ?>
        <?php $attValConfig = $product->getTypeInstance()->getConfigurableAttributesAsArray(); ?>
        <?php if(sizeof($attValConfig)): ?>
            <?php foreach($attValConfig as $attValConfigSingle): ?>
                <fieldset class="product-options" id="product-options-wrapper">
                    <label><?php echo $attValConfigSingle['label']; ?>:</label>
                    <select name="super_attribute[<?php echo $attValConfigSingle['attribute_id'] ?>]" id="attribute<?php echo $_product->getId() ?>" class="required-entry super-attribute-select">
                        <?php foreach($attValConfigSingle['values'] as $attValConfigSingleVal): ?>
                            <option value="<?php echo $attValConfigSingleVal['value_index'] ?>"><?php echo $attValConfigSingleVal['label'] ?></option>
                        <?php endforeach; ?>
                    </select>
                </fieldset>
            <?php endforeach; ?>
        <?php endif; ?>
    <?php endif; ?>

<?php // Custom options  - tested but not fully implemented ?>

    <?php
    $xml = "";
    $attVal = $product->getOptions();
    if(sizeof($attVal)) {
      foreach($attVal as $optionVal) {
        $xml .= $optionVal->getTitle().": ";
        $xml .= "<select name='options[".$optionVal->getId()."]'>";
        foreach($optionVal->getValues() as $valuesKey => $valuesVal) {
          $xml .= "<option value='".$valuesVal->getId()."'>".$valuesVal->getTitle()."</option>";
        }
        $xml .= "</select>";
      }
    }
    echo $xml;
    ?>

<?php // Product quantity and add  ?>

    <?php if(!$_product->isGrouped()): ?>                                
        <label>Qty:</label>
        <input name="qty" type="text" id="qty" maxlength="12" value="<?php echo $this->getMinimalQty($_product)==null?1:$this->getMinimalQty($_product) ?>"/>
        <button type="button" onclick="productAddToCartForm<?php echo $_product->getId() ?>.submit()">Add to Cart</button>
    <?php endif; ?>


    </form>
    <script type="text/javascript">
            var productAddToCartForm<?php echo $_product->getId() ?> = new VarienForm('product_addtocart_form_<?php echo $_product->getId() ?>');
            productAddToCartForm<?php echo $_product->getId() ?>.submit = function(){
                    if (this.validator.validate()) {
                            this.form.submit();
                    }
            }.bind(productAddToCartForm<?php echo $_product->getId() ?>);
    </script>
<?php else: ?>
    <div class="out-of-stock"><?php echo $this->__('Out of stock') ?></div>
<?php endif; ?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值