在付款方式中选择选项而不是 magento 中的单选按钮

Posted

技术标签:

【中文标题】在付款方式中选择选项而不是 magento 中的单选按钮【英文标题】:select option in payment method instead of radion button in magento 【发布时间】:2012-08-25 06:53:45 【问题描述】:

这是我在 magento 的 onepagecheckout 中的 methods.phtml 文件,我想要下拉(选择选项)按钮而不是单选按钮……这样我就可以选择支付方式来支付款项。

<?php if (!$methods = $this->getMethods()) : ?>
  <p><?php echo $this->helper('checkout')->__('Sorry, no quotes are available for this order at this time.') ?></p>
   <?php else : ?>
     <dl class="sp-methods">
     <?php foreach ($this->getMethods() as $_method): $_code = $_method->getCode() ?>
     <dt>
         <?php if( sizeof($this->getMethods()) > 1 ): ?>

              <input  value="<?php echo $_code ?>" type="radio" name="payment[method]" title="<?php echo $this->htmlEscape($_method->getTitle()) ?>" onclick="payment.switchMethod('<?php echo $_code ?>')"<?php if($this->getSelectedMethodCode()==$_code): ?> checked="checked"<?php endif; ?> class="radio" />
              <?php else: ?>
              <span class="no-display"><input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" checked="checked" class="radio" />                </span>
           <?php endif; ?>
              <label for="p_method_<?php echo $_code ?>"><?php echo $this->htmlEscape($_method->getTitle()) ?> <?php echo $this->getMethodLabelAfterHtml($_method) ?></label>
         </dt>
        <?php if ($html = $this->getPaymentMethodFormHtml($_method)): ?>
          <dd>
            <?php echo $html; ?>
           </dd>
          <?php endif; ?>
       <?php endforeach; ?>
          </dl>
       <script type="text/javascript">
            //<![CDATA[
         <?php echo $this->getChildChildHtml('scripts'); ?>
                payment.init();
            //]]>
           </script>
      <?php endif; ?>

【问题讨论】:

我无法查看您的消息............ 你有解决这个问题的办法吗?我的magento需要同样的东西。所以如果你得到这个问题的解决方案,请帮助我 【参考方案1】:

您可以在 methods.phtml 文件中的代码下方设置付款方式的选择选项下拉菜单。

您还必须更改 opcheckout.js 第 715 行 以将 "elements[i].checked" 更改为 "elements[i].value"

<?php
    $methods = $this->getMethods();
    $oneMethod = count($methods) <= 1;
?>
<?php if (empty($methods)): ?>
    <dt>
        <?php echo $this->__('No Payment Methods') ?>
    </dt>
<?php else:
    ?>
    <dt>Select Payment Method:</dt>
    <select name="payment[method]" onchange="payment.switchMethod(this.value);">
    <?php
    foreach ($methods as $_method):
        $_code = $_method->getCode();
    ?>
        <option id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" <?php if($this->getSelectedMethodCode()==$_code): ?> selected="selected"<?php endif; ?>>
            <?php echo $this->escapeHtml($this->getMethodTitle($_method)) ?> <?php echo $this->getMethodLabelAfterHtml($_method) ?>
        </option>
<?php endforeach; ?>
    </select>
    <?php
    foreach ($methods as $_method):
        $_code = $_method->getCode();
    ?>
    <?php if ($html = $this->getPaymentMethodFormHtml($_method)): ?>
    <dd id="dd_method_<?php echo $_code ?>">
        <?php echo $html; ?>
    </dd>
    <?php endif;
    endforeach;
    endif;
?>
<?php echo $this->getChildChildHtml('additional'); ?>
<script type="text/javascript">
    //<![CDATA[
    <?php echo $this->getChildChildHtml('scripts'); ?>
    payment.init();
    <?php if (is_string($oneMethod)): ?>
    payment.switchMethod('<?php echo $oneMethod ?>');
        <?php endif; ?>
    //]]>
</script>

【讨论】:

【参考方案2】:

如果有帮助,我会使用这个来获取我的选择列表

   <?php 
  $ptId1=mysql_query(" some query here")
 echo"<select name=ptId>";
    while($ptId=mysql_fetch_array($ptId1))
        
            echo '<option value="'.$ptId['id'].'">'.$ptId['id'].'</option>';
        
    echo '</select>';?>

【讨论】:

这不是问题的答案 配方其他人可提供,食材自选 是的,我知道,但你的食谱有误,所以我无法选择正确的配料。

以上是关于在付款方式中选择选项而不是 magento 中的单选按钮的主要内容,如果未能解决你的问题,请参考以下文章

magento 自定义付款方式表单未显示

Magento 中付款方式的名称

Magento 1.8.0.0:添加自定义付款方式重定向到新页面

货到付款付款方式应仅对 magento 中的某些邮政编码/密码可见

Magento 2 - 管理员中没有 PayPal Pro 选项

使用 PayPal 将 Magento 中不接受的货币转换为美元付款