代码之家  ›  专栏  ›  技术社区  ›  mya

我从表单中只得到一个字段的参数

  •  0
  • mya  · 技术社区  · 7 年前

    我有一个 foreach

    <form action="<?php echo Mage::getUrl('checkout/cart/addmultiple')?>" method="post" id="products_addtocart_form" enctype="multipart/form-data">
        <?php foreach ($_productCollection as $prod) : ?>
            <div class="border-new-cart-button">
                 <input type="hidden" name="productId" value="<?php echo $productId ?>" />
                 <input type="hidden" name="productName" value="<?php echo $prod->getName() ?>" />
                 <input type="text" class="input-qty-product number-control" title="Qty" value="<?php echo /*$this->getProductDefaultQty() * */ 0 ?>" name="qty" id="qty-<?php echo $productId ?>"/>
            </div>
        <?php endforeach; ?>
        <button class="btn add-to-cart" onclick="this.form.submit()"><span><?php echo $this->__('Validate') ?></span></button>
    </form>
    

    控制器:

    public function addmultipleAction(){
        $params= array($this->getRequest()->getParams());
        var_dump($params);
        // Result:
          Array
               (
                 [0] => Array
                             (
                               [productId] => 106
                               [productName] => shirt
                               [qty] => 6
                               [productTagName] =>
                             )
    
                )
    }
    

    编辑:

    Now i get them like this:
    
    [productId] => Array
                        (
                            [0] => 106
                            [1] => 107
                            [2] => 108
                            [3] => 109
                        )
    
    [qty] => Array
                    (
                        [0] => 4
                        [1] => 3
                        [2] => 2
                        [3] => 1
                    )
    
    
    // I want to group the `id` and `qty` per product, something like this:
     array(
          [0] (
               [id] => 106
               [qty] => 4
              )
    
          [1] (
               [id] => 107
               [qty] => 3
              )
           ...
     )
    
    3 回复  |  直到 7 年前
        1
  •  1
  •   RiggsFolly    7 年前

    <input type="hidden" name="productId[]" value="<?php echo $productId ?>" />
    <input type="hidden" name="productName[]" value="<?php echo $prod->getName() ?>" />
    <input type="text" name="qty[]" class="input-qty-product number-control" title="Qty" value="<?php echo /*$this->getProductDefaultQty() * */ 0 ?>" id="qty-<?php echo $productId ?>"/>
    

    注:the name="" [] 在他们之后。

        2
  •  0
  •   GYaN user7305435    7 年前

    在所有输入中添加数组,如

    <form action="<?php echo Mage::getUrl('checkout/cart/addmultiple')?>" method="post" id="products_addtocart_form" enctype="multipart/form-data">
    <?php foreach ($_productCollection as $prod) : ?>
        <div class="border-new-cart-button">
             <input type="hidden" name="productId[]" value="<?php echo $productId ?>" />
             <input type="hidden" name="productName[]" value="<?php echo $prod->getName() ?>" />
             <input type="text" class="input-qty-product number-control" title="Qty" value="<?php echo /*$this->getProductDefaultQty() * */ 0 ?>" name="qty[]" id="qty-<?php echo $productId ?>"/>
        </div>
    <?php endforeach; ?>
    <button class="btn add-to-cart" onclick="this.form.submit()"><span><?php echo $this->__('Validate') ?></span></button>
    

    你会得到你想要的。。。。

        3
  •  0
  •   Chris Johnston    7 年前

    <form action="<?php echo Mage::getUrl('checkout/cart/addmultiple')?>" method="post" id="products_addtocart_form" enctype="multipart/form-data">
    <?php for ($i=0, $length = count($_productCollection); $i < $length; $i++) : ?>
        <div class="border-new-cart-button">
             <input type="hidden" name="item[<?=$i?>][productId]" value="<?php echo $productId ?>" />
             <input type="hidden" name="item[<?=$i?>][productName]" value="<?php echo $_productCollection[$i]->getName() ?>" />
             <input type="text" class="input-qty-product number-control" title="Qty" value="<?php echo /*$this->getProductDefaultQty() * */ 0 ?>" name="item[<?=$i?>][qty]" id="qty-<?php echo $productId ?>"/>
        </div>
    <?php endfor; ?>
    <button class="btn add-to-cart" onclick="this.form.submit()"><span><?php echo $this->__('Validate') ?></span></button>
    

    我希望这样将项目分组在一起,而不是像其他答案所建议的那样有三个数组