2013-12-18 43 views
0

Magento v1.7收音機在Magento中提交header.phtml

如何通過偵聽單選按鈕上的更改來提交header.phtml中的表單?

這是我的代碼,如果我將單選按鈕更改爲選擇下拉列表,它會提交正常。我無法理解

$groupId = null; 
if (Mage::getSingleton('customer/session')->isLoggedIn()) { 

    /* Get the customer data */ 
    $customer = Mage::getSingleton('customer/session')->getCustomer(); 
    /* Get the customer's full name */ 
    $customer = Mage::getModel('customer/customer')->load($customer->getId()) ; 

    $groupId = $customer->getGroupId(); 
} 
$cookieGroupId = Mage::getModel('core/cookie')->get('customer_group_id'); 
if ($cookieGroupId) { 
    $groupId = $cookieGroupId; 
} 


?> 

<div id="alt-nav-container"> 
    <ul id="alt-nav"> 
     <li class="icon-reorder"><span>Navigation</span></li> 
    </ul> 
</div> 
<div class="header-container"> 
    <header class="header"> 
     <h1> 
      <figure> 
       <a href="<?php echo $this->getUrl('') ?>" title="<?php echo $this->getLogoAlt() ?>" class="logo"><span><?php echo $this->getLogoAlt() ?></span> 
       </a> 
      </figure> 
     </h1> 
     <div class="player-container"> 
      <div id="jquery_jplayer_1" class="jp-jplayer"></div> 
      <div id="jp_container_1" class="jp-audio"> 
       <div class="jp-type-single"> 
        <div class="jp-gui jp-interface"> 
         <ul class="jp-controls"> 
          <li class="control-left"><a href="javascript:;" class="jp-play" tabindex="1"><span class="play-button"></span></a><a href="javascript:;" class="jp-pause" tabindex="1"><span class="pause-button"></span></a></li> 
          <li class="control-center"><strong>Playing: <span class="jp-track-title"></span></strong> by <span class="jp-composer-name"></span></li> 
          <li class="control-right"><a href="javascript:;" class="jp-mute" tabindex="1" title="mute"><span class="volume-on-button"></span></a><a href="javascript:;" class="jp-unmute" tabindex="1" title="unmute"><span class="volume-off-button"></span></a></li> 
         </ul> 
         <div class="jp-time-holder"> 
          <div class="jp-current-time"></div> 
          <div class="jp-progress"> 
           <div class="jp-seek-bar"> 
            <div class="jp-play-bar"></div> 
           </div> 
          </div> 
          <div class="jp-duration"></div> 
         </div> 
        </div> 
        <div class="jp-no-solution"> 
         <span>Update Required</span> 
         To play the media you will need to either update your browser to a recent version or update your <a href="http://get.adobe.com/flashplayer/" target="_blank">Flash plugin</a>. 
        </div> 
       </div> 
      </div> 
     </div> 
<!-- 
<div style="z-index:9999;"> 
<?php 
// var_export(get_class_methods(get_class($GroupId))); 
?> 
</div> --> 
     <div class="license-type"> 

      <ul class="select-license-tab"> 
       <li><span>Select your license type <sub class="icon-chevron-down"></sub></span> 
        <ul> 
         <li> 
          <div class="license-form"> 
           <form action="<?php echo $this->getUrl('mcustomer/group/update') ?>" method="post" id="form-group-update" name="form-group-update"> 
            <dl class="accordion"> 
            <?php $groups = Mage::helper('customer')->getGroups()->toOptionArray(); ?> 
            <?php foreach($groups as $group){ ?> 
             <div class="license-item"> 
              <dt> 
               <?php if($groupId != null && $group['value'] == $groupId):?> 
                <input id="license-type-<?php print $group['value'] ?>" name="validate-one-required" type="radio" value="<?php print $group['value'] ?>" class="required-entry validate-one-required" checked="checked" /> 
                <label for="license-type-<?php print $group['value'] ?>"><?php print $group['label'] ?></label> 
               <?php else: ?> 
                <input id="license-type-<?php print $group['value'] ?>" name="validate-one-required" type="radio" value="<?php print $group['value'] ?>" class="required-entry validate-one-required" /> 
                <label for="license-type-<?php print $group['value'] ?>"><?php print $group['label'] ?></label> 
               <?php endif; ?> 
              </dt> 
              <dd> 
               <?php print $group['customer_description'] ?> 
              </dd> 
             </div> 
            <?php } ?> 
            </dl> 
           </form> 
          </div> 
         </li> 
        </ul> 
       </li> 
      </ul> 
     </div> 
    </header> 
</div> 
<div class="navigation-bar"> 
    <div class="navigation-bar-wrapper"> 
     <?php echo $this->getChildHtml('topContainer'); ?> 
     <?php echo $this->getChildHtml('topSearch') ?> 
     <?php echo $this->getChildHtml('topLinks') ?> 
     <?php echo $this->getChildHtml('store_language') ?> 
     <?php echo $this->getChildHtml('topMenu') ?> 
    </div> 
</div> 
<script type="text/javascript"> 
//< ![CDATA[ 
var customForm = new VarienForm('form-group-update'); 

Event.observe($("validate-one-required"),'change', function(event){ 
    $('form-group-update').submit(); 
}); 

//]]> 
</script> 

在此先感謝

回答

0

您應該添加一個新類到您的電臺,以防止因爲validate-one-required與其他網頁形式的衝突不是唯一的,或者用更獨特的類選擇如$$('.license-form .validate-one-required').each..

$$('.license-form_radios').each(function(curInput) { 
    Event.observe(curInput, 'click', function() { 
     $('form-group-update').submit(); 
    }); 
}); 
+0

謝謝RS!這工作! –