2016-05-24 4 views

答えて

1
Open your "app\code\core\Mage\Adminhtml\Block\Customer\Edit\TabAccount.php" file and copy file in your local code folder 

ウェブサイトのID

ここ

i have tested it on magento 1.7 

clear your magento cache. 

細かいを見出し

$country = $fieldset->addField('country', 'select', array(
      'name' => 'country', 
      'label' => Mage::helper('customer')->__('Country'), 
      'values' => Mage::getModel('adminhtml/system_config_source_country')->toOptionArray(), 
      'class' => 'required-entry',`enter code here` 
      'required' => true, 
      'onchange' => 'getstate(this)', 
     )); 

     //Edit action pass your custom table to country id and get state 
     $storeId = $this->getRequest()->getParam('id'); 
     $editState = $stateCollection = Mage::getModel('directory/region')->load($storeId); 
     $stateCollection = Mage::getModel('directory/region')->getResourceCollection()->addCountryFilter($editState->getCountry())->load(); 
     $state = ""; 
     foreach ($stateCollection as $_state) { 
      $state[] = array('value' => $_state->getCode(), 'label' => $_state->getDefaultName()); 
     } 
     $fieldset->addField('state', 'select', array(
      'label' => Mage::helper('customer')->__('State'), 
      'required' => false, 
      'name' => 'state', 
      'selected' => 'selected', 
      'values' => $state, 
     )); 


     /* 
     * Add Ajax to the Country select box html output 
     */ 
     $url = Mage::getBaseUrl(); 
     $country->setAfterElementHtml("<script type=\"text/javascript\"> 
    function getstate(selectElement){ 
     var reloadurl = '" . $url . 'admin/customer/state/' . "country/' + selectElement.value; 
     new Ajax.Request(reloadurl, { 
      method: 'POST', 
      onComplete: function (transport) { 
       jQuery('#_accountstate').html(transport.responseText); 
      } 
     }); 
    } 
//</script>"); 

add function in "app\code\core\Mage\Adminhtml\controllers\CustomerController.php after extend it in your local code pool 


public function stateAction() { 
     $countrycode = $this->getRequest()->getParam('country'); 
     $state = "<option value=''>--Please Select--</option>"; 
     if ($countrycode != '') { 
      $statearray = Mage::getModel('directory/region')->getResourceCollection()->addCountryFilter($countrycode)->load(); 
      foreach ($statearray as $_state) { 
       $state .= "<option value='" . $_state->getCode() . "'>" . $_state->getDefaultName() . "</option>"; 
      }strong text 
     } 
     echo $state; 

後にコードを追加します。

関連する問題