2013-09-29 12 views
0

Я создаю сайт с Opencart 1.5.3.1, но у меня возникла проблема с страницей регистрации партнера.Не могу загрузить Регион/Область - Филиал Реестр

http://www.officexinh.com/index.php?route=affiliate/register

(язык: Вьетнамский - Регион/Государство "Quan/Гуйен:")

  • Когда пользователь создает новую учетную запись, то "Партнер" зарегистрировать страница загружается очень медленно , а в поле Регион/Состояние не отображается значение.

  • Однако на моей странице регистрации «Учетная запись» эта ошибка отсутствует!

1. Каталог/контроллер/филиал/register.php

<?php 
class ControllerAffiliateRegister extends Controller { 
    private $error = array(); 

    public function index() { 
     if ($this->affiliate->isLogged()) { 
      $this->redirect($this->url->link('affiliate/account', '', 'SSL')); 
     } 

     $this->language->load('affiliate/register'); 

     $this->document->setTitle($this->language->get('heading_title')); 

     $this->load->model('affiliate/affiliate'); 

     if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { 
      $this->model_affiliate_affiliate->addAffiliate($this->request->post); 

      $this->affiliate->login($this->request->post['email'], $this->request->post['password']); 

      $this->redirect($this->url->link('affiliate/success')); 
     } 

     $this->data['breadcrumbs'] = array(); 

     $this->data['breadcrumbs'][] = array(
      'text'  => $this->language->get('text_home'), 
      'href'  => $this->url->link('common/home'),   
      'separator' => false 
     ); 

     $this->data['breadcrumbs'][] = array(
      'text'  => $this->language->get('text_account'), 
      'href'  => $this->url->link('affiliate/account', '', 'SSL'),   
      'separator' => $this->language->get('text_separator') 
     ); 

     $this->data['breadcrumbs'][] = array(
      'text'  => $this->language->get('text_register'), 
      'href'  => $this->url->link('affiliate/register', '', 'SSL'),  
      'separator' => $this->language->get('text_separator') 
     ); 

     $this->data['heading_title'] = $this->language->get('heading_title'); 

     $this->data['text_select'] = $this->language->get('text_select'); 
     $this->data['text_none'] = $this->language->get('text_none'); 
     $this->data['text_account_already'] = sprintf($this->language->get('text_account_already'), $this->url->link('affiliate/login', '', 'SSL')); 
     $this->data['text_signup'] = $this->language->get('text_signup'); 
     $this->data['text_your_details'] = $this->language->get('text_your_details'); 
     $this->data['text_your_address'] = $this->language->get('text_your_address'); 
     $this->data['text_payment'] = $this->language->get('text_payment'); 
     $this->data['text_your_password'] = $this->language->get('text_your_password'); 
     $this->data['text_cheque'] = $this->language->get('text_cheque'); 
     $this->data['text_paypal'] = $this->language->get('text_paypal'); 
     $this->data['text_bank'] = $this->language->get('text_bank'); 

     $this->data['entry_lastname'] = $this->language->get('entry_lastname'); 
     $this->data['entry_firstname'] = $this->language->get('entry_firstname'); 
     $this->data['entry_email'] = $this->language->get('entry_email'); 
     $this->data['entry_telephone'] = $this->language->get('entry_telephone'); 
     $this->data['entry_fax'] = $this->language->get('entry_fax'); 
     $this->data['entry_company'] = $this->language->get('entry_company'); 
     $this->data['entry_website'] = $this->language->get('entry_website'); 
     $this->data['entry_address_1'] = $this->language->get('entry_address_1'); 
     $this->data['entry_address_2'] = $this->language->get('entry_address_2'); 
     $this->data['entry_postcode'] = $this->language->get('entry_postcode'); 
     $this->data['entry_city'] = $this->language->get('entry_city'); 
     $this->data['entry_country'] = $this->language->get('entry_country'); 
     $this->data['entry_zone'] = $this->language->get('entry_zone'); 
     $this->data['entry_tax'] = $this->language->get('entry_tax'); 
     $this->data['entry_payment'] = $this->language->get('entry_payment'); 
     $this->data['entry_cheque'] = $this->language->get('entry_cheque'); 
     $this->data['entry_paypal'] = $this->language->get('entry_paypal'); 
     $this->data['entry_bank_name'] = $this->language->get('entry_bank_name'); 
     $this->data['entry_bank_branch_number'] = $this->language->get('entry_bank_branch_number'); 
     $this->data['entry_bank_swift_code'] = $this->language->get('entry_bank_swift_code'); 
     $this->data['entry_bank_account_name'] = $this->language->get('entry_bank_account_name'); 
     $this->data['entry_bank_account_number'] = $this->language->get('entry_bank_account_number'); 
     $this->data['entry_password'] = $this->language->get('entry_password'); 
     $this->data['entry_confirm'] = $this->language->get('entry_confirm'); 

     $this->data['button_continue'] = $this->language->get('button_continue'); 

     if (isset($this->error['warning'])) { 
      $this->data['error_warning'] = $this->error['warning']; 
     } else { 
      $this->data['error_warning'] = ''; 
     } 

     if (isset($this->error['lastname'])) { 
      $this->data['error_lastname'] = $this->error['lastname']; 
     } else { 
      $this->data['error_lastname'] = ''; 
     } 

     if (isset($this->error['firstname'])) { 
      $this->data['error_firstname'] = $this->error['firstname']; 
     } else { 
      $this->data['error_firstname'] = ''; 
     }  

     if (isset($this->error['email'])) { 
      $this->data['error_email'] = $this->error['email']; 
     } else { 
      $this->data['error_email'] = ''; 
     } 

     if (isset($this->error['telephone'])) { 
      $this->data['error_telephone'] = $this->error['telephone']; 
     } else { 
      $this->data['error_telephone'] = ''; 
     } 

     if (isset($this->error['password'])) { 
      $this->data['error_password'] = $this->error['password']; 
     } else { 
      $this->data['error_password'] = ''; 
     } 

     if (isset($this->error['confirm'])) { 
      $this->data['error_confirm'] = $this->error['confirm']; 
     } else { 
      $this->data['error_confirm'] = ''; 
     } 

     if (isset($this->error['address_1'])) { 
      $this->data['error_address_1'] = $this->error['address_1']; 
     } else { 
      $this->data['error_address_1'] = ''; 
     } 

     if (isset($this->error['city'])) { 
      $this->data['error_city'] = $this->error['city']; 
     } else { 
      $this->data['error_city'] = ''; 
     } 

     if (isset($this->error['postcode'])) { 
      $this->data['error_postcode'] = $this->error['postcode']; 
     } else { 
      $this->data['error_postcode'] = ''; 
     } 

     if (isset($this->error['country'])) { 
      $this->data['error_country'] = $this->error['country']; 
     } else { 
      $this->data['error_country'] = ''; 
     } 

     if (isset($this->error['zone'])) { 
      $this->data['error_zone'] = $this->error['zone']; 
     } else { 
      $this->data['error_zone'] = ''; 
     } 

     $this->data['action'] = $this->url->link('affiliate/register', '', 'SSL'); 

     if (isset($this->request->post['lastname'])) { 
      $this->data['lastname'] = $this->request->post['lastname']; 
     } else { 
      $this->data['lastname'] = ''; 
     } 

     if (isset($this->request->post['firstname'])) { 
      $this->data['firstname'] = $this->request->post['firstname']; 
     } else { 
      $this->data['firstname'] = ''; 
     } 

     if (isset($this->request->post['email'])) { 
      $this->data['email'] = $this->request->post['email']; 
     } else { 
      $this->data['email'] = ''; 
     } 

     if (isset($this->request->post['telephone'])) { 
      $this->data['telephone'] = $this->request->post['telephone']; 
     } else { 
      $this->data['telephone'] = ''; 
     } 

     if (isset($this->request->post['fax'])) { 
      $this->data['fax'] = $this->request->post['fax']; 
     } else { 
      $this->data['fax'] = ''; 
     } 

     if (isset($this->request->post['company'])) { 
      $this->data['company'] = $this->request->post['company']; 
     } else { 
      $this->data['company'] = ''; 
     } 

     if (isset($this->request->post['website'])) { 
      $this->data['website'] = $this->request->post['website']; 
     } else { 
      $this->data['website'] = ''; 
     } 

     if (isset($this->request->post['address_1'])) { 
      $this->data['address_1'] = $this->request->post['address_1']; 
     } else { 
      $this->data['address_1'] = ''; 
     } 

     if (isset($this->request->post['address_2'])) { 
      $this->data['address_2'] = $this->request->post['address_2']; 
     } else { 
      $this->data['address_2'] = ''; 
     } 

     if (isset($this->request->post['postcode'])) { 
      $this->data['postcode'] = $this->request->post['postcode']; 
     } else { 
      $this->data['postcode'] = ''; 
     } 

     if (isset($this->request->post['city'])) { 
      $this->data['city'] = $this->request->post['city']; 
     } else { 
      $this->data['city'] = ''; 
     } 

     if (isset($this->request->post['country_id'])) { 
      $this->data['country_id'] = $this->request->post['country_id']; 
     } else {  
      $this->data['country_id'] = $this->config->get('config_country_id'); 
     } 

     if (isset($this->request->post['zone_id'])) { 
      $this->data['zone_id'] = $this->request->post['zone_id']; 
     } else { 
      $this->data['zone_id'] = ''; 
     } 

     $this->load->model('localisation/country'); 

     $this->data['countries'] = $this->model_localisation_country->getCountries(); 

     if (isset($this->request->post['tax'])) { 
      $this->data['tax'] = $this->request->post['tax']; 
     } else { 
      $this->data['tax'] = ''; 
     } 

     if (isset($this->request->post['payment'])) { 
      $this->data['payment'] = $this->request->post['payment']; 
     } else { 
      $this->data['payment'] = 'cheque'; 
     } 

     if (isset($this->request->post['cheque'])) { 
      $this->data['cheque'] = $this->request->post['cheque']; 
     } else { 
      $this->data['cheque'] = ''; 
     } 

     if (isset($this->request->post['paypal'])) { 
      $this->data['paypal'] = $this->request->post['paypal']; 
     } else { 
      $this->data['paypal'] = ''; 
     } 

     if (isset($this->request->post['bank_name'])) { 
      $this->data['bank_name'] = $this->request->post['bank_name']; 
     } else { 
      $this->data['bank_name'] = ''; 
     } 

     if (isset($this->request->post['bank_branch_number'])) { 
      $this->data['bank_branch_number'] = $this->request->post['bank_branch_number']; 
     } else { 
      $this->data['bank_branch_number'] = ''; 
     } 

     if (isset($this->request->post['bank_swift_code'])) { 
      $this->data['bank_swift_code'] = $this->request->post['bank_swift_code']; 
     } else { 
      $this->data['bank_swift_code'] = ''; 
     } 

     if (isset($this->request->post['bank_account_name'])) { 
      $this->data['bank_account_name'] = $this->request->post['bank_account_name']; 
     } else { 
      $this->data['bank_account_name'] = ''; 
     } 

     if (isset($this->request->post['bank_account_number'])) { 
      $this->data['bank_account_number'] = $this->request->post['bank_account_number']; 
     } else { 
      $this->data['bank_account_number'] = ''; 
     } 

     if (isset($this->request->post['password'])) { 
      $this->data['password'] = $this->request->post['password']; 
     } else { 
      $this->data['password'] = ''; 
     } 

     if (isset($this->request->post['confirm'])) { 
      $this->data['confirm'] = $this->request->post['confirm']; 
     } else { 
      $this->data['confirm'] = ''; 
     } 

     if ($this->config->get('config_affiliate_id')) { 
      $this->load->model('catalog/information'); 

      $information_info = $this->model_catalog_information->getInformation($this->config->get('config_affiliate_id')); 

      if ($information_info) { 
       $this->data['text_agree'] = sprintf($this->language->get('text_agree'), $this->url->link('information/information/info', 'information_id=' . $this->config->get('config_affiliate_id'), 'SSL'), $information_info['title'], $information_info['title']); 
      } else { 
       $this->data['text_agree'] = ''; 
      } 
     } else { 
      $this->data['text_agree'] = ''; 
     } 

     if (isset($this->request->post['agree'])) { 
      $this->data['agree'] = $this->request->post['agree']; 
     } else { 
      $this->data['agree'] = false; 
     } 

     if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/affiliate/register.tpl')) { 
      $this->template = $this->config->get('config_template') . '/template/affiliate/register.tpl'; 
     } else { 
      $this->template = 'default/template/affiliate/register.tpl'; 
     } 

     $this->children = array(
      'common/column_left', 
      'common/column_right', 
      'common/content_top', 
      'common/content_bottom', 
      'common/footer', 
      'common/header' 
     ); 

     $this->response->setOutput($this->render());  
    } 

    private function validate() { 
     if ((utf8_strlen($this->request->post['lastname']) < 1) || (utf8_strlen($this->request->post['lastname']) > 32)) { 
      $this->error['lastname'] = $this->language->get('error_lastname'); 
     } 

     if ((utf8_strlen($this->request->post['firstname']) < 1) || (utf8_strlen($this->request->post['firstname']) > 32)) { 
      $this->error['firstname'] = $this->language->get('error_firstname'); 
     } 

     if ((utf8_strlen($this->request->post['email']) > 96) || !preg_match('/^[^\@][email protected]*\.[a-z]{2,6}$/i', $this->request->post['email'])) { 
      $this->error['email'] = $this->language->get('error_email'); 
     } 

     if ($this->model_affiliate_affiliate->getTotalAffiliatesByEmail($this->request->post['email'])) { 
      $this->error['warning'] = $this->language->get('error_exists'); 
     } 

     if ((utf8_strlen($this->request->post['telephone']) < 3) || (utf8_strlen($this->request->post['telephone']) > 32)) { 
      $this->error['telephone'] = $this->language->get('error_telephone'); 
     } 

     if ((utf8_strlen($this->request->post['address_1']) < 3) || (utf8_strlen($this->request->post['address_1']) > 128)) { 
      $this->error['address_1'] = $this->language->get('error_address_1'); 
     } 

     if ((utf8_strlen($this->request->post['city']) < 2) || (utf8_strlen($this->request->post['city']) > 128)) { 
      $this->error['city'] = $this->language->get('error_city'); 
     } 

     $this->load->model('localisation/country'); 

     $country_info = $this->model_localisation_country->getCountry($this->request->post['country_id']); 

     if ($country_info && $country_info['postcode_required'] && (utf8_strlen($this->request->post['postcode']) < 2) || (utf8_strlen($this->request->post['postcode']) > 10)) { 
      $this->error['postcode'] = $this->language->get('error_postcode'); 
     } 

     if ($this->request->post['country_id'] == '') { 
      $this->error['country'] = $this->language->get('error_country'); 
     } 

     if ($this->request->post['zone_id'] == '') { 
      $this->error['zone'] = $this->language->get('error_zone'); 
     } 

     if ((utf8_strlen($this->request->post['password']) < 4) || (utf8_strlen($this->request->post['password']) > 20)) { 
      $this->error['password'] = $this->language->get('error_password'); 
     } 

     if ($this->request->post['confirm'] != $this->request->post['password']) { 
      $this->error['confirm'] = $this->language->get('error_confirm'); 
     } 

     if ($this->config->get('config_affiliate_id')) { 
      $this->load->model('catalog/information'); 

      $information_info = $this->model_catalog_information->getInformation($this->config->get('config_affiliate_id')); 

      if ($information_info && !isset($this->request->post['agree'])) { 
       $this->error['warning'] = sprintf($this->language->get('error_agree'), $information_info['title']); 
      } 
     } 

     if (!$this->error) { 
      return true; 
     } else { 
      return false; 
     } 
    } 

    public function country() { 
     $json = array(); 

     $this->load->model('localisation/country'); 

     $country_info = $this->model_localisation_country->getCountry($this->request->get['country_id']); 

     if ($country_info) { 
      $this->load->model('localisation/zone'); 

      $json = array(
       'country_id'  => $country_info['country_id'], 
       'name'    => $country_info['name'], 
       'iso_code_2'  => $country_info['iso_code_2'], 
       'iso_code_3'  => $country_info['iso_code_3'], 
       'address_format' => $country_info['address_format'], 
       'postcode_required' => $country_info['postcode_required'], 
       'zone'    => $this->model_localisation_zone->getZonesByCountryId($this->request->get['country_id']), 
       'status'   => $country_info['status']  
      ); 
     } 

     $this->response->setOutput(json_encode($json)); 
    } 
} 
?> 

2. каталог/контроллер/филиал/register.tpl

I cut the first part of the full code because Stackoverflow allows the posted content not over 300000 characters. However, the fist part is default in Opencart installation... 


     </div> 
     <h2><?php echo $text_your_address; ?></h2> 
     <div class="content"> 
      <table class="form"> 
      <tr> 
       <td><?php echo $entry_company; ?></td> 
       <td><input type="text" size="50" name="company" value="<?php echo $company; ?>" /></td> 
      </tr> 
      <tr> 
       <td><?php echo $entry_website; ?></td> 
       <td><input type="text" name="website" value="<?php echo $website; ?>" /></td> 
      </tr> 
      <tr> 
       <td><span class="required">*</span> <?php echo $entry_address_1; ?></td> 
       <td><input type="text" size="50" name="address_1" value="<?php echo $address_1; ?>" /> 
       <?php if ($error_address_1) { ?> 
       <span class="error"><?php echo $error_address_1; ?></span> 
       <?php } ?></td> 
      </tr> 
      <tr> 
       <td><?php echo $entry_address_2; ?></td> 
       <td><input type="text" size="50" name="address_2" value="<?php echo $address_2; ?>" /></td> 
      </tr> 
      <tr> 
       <td><span class="required">*</span> <?php echo $entry_city; ?></td> 
       <td><input type="text" size="50" name="city" value="<?php echo $city; ?>" /> 
       <?php if ($error_city) { ?> 
       <span class="error"><?php echo $error_city; ?></span> 
       <?php } ?></td> 
      </tr> 
      <tr> 
       <td><span id="postcode-required" class="required">*</span> <?php echo $entry_postcode; ?></td> 
       <td><input type="text" size="50" name="postcode" value="<?php echo $postcode; ?>" /> 
       <?php if ($error_postcode) { ?> 
       <span class="error"><?php echo $error_postcode; ?></span> 
       <?php } ?></td> 
      </tr> 
      <tr> 
       <td><span class="required">*</span> <?php echo $entry_country; ?></td> 
       <td><select name="country_id" onchange="$('select[name=\'zone_id\']').load('index.php?route=account/register/zone&country_id=' + this.value + '&zone_id=<?php echo $zone_id; ?>');"> 
        <option value="false"><?php echo $text_select; ?></option> 
        <?php foreach ($countries as $country) { ?> 
        <?php if ($country['country_id'] == $country_id) { ?> 
        <option value="<?php echo $country['country_id']; ?>" selected="selected"><?php echo $country['name']; ?></option> 
        <?php } else { ?> 
        <option value="<?php echo $country['country_id']; ?>"><?php echo $country['name']; ?></option> 
        <?php } ?> 
        <?php } ?> 
       </select> 
       <?php if ($error_country) { ?> 
       <span class="error"><?php echo $error_country; ?></span> 
       <?php } ?></td> 
      </tr> 
      <tr> 
       <td><span class="required">*</span> <?php echo $entry_zone; ?></td> 
       <td><select name="zone_id"> 
       </select> 
       <?php if ($error_zone) { ?> 
       <span class="error"><?php echo $error_zone; ?></span> 
       <?php } ?></td> 
      </tr> 
      </table> 
     </div> 
     <h2><?php echo $text_payment; ?></h2> 
     <div class="content"> 
      <table class="form"> 
      <tbody> 
       <tr> 
       <td><?php echo $entry_tax; ?></td> 
       <td><input type="text" size="50" name="tax" value="<?php echo $tax; ?>" /></td> 
       </tr> 
       <tr> 
       <td><?php echo $entry_payment; ?></td> 
       <td><?php if ($payment == 'cheque') { ?> 
        <input type="radio" name="payment" value="cheque" id="cheque" checked="checked" /> 
        <?php } else { ?> 
        <input type="radio" name="payment" value="cheque" id="cheque" /> 
        <?php } ?> 
        <label for="cheque"><?php echo $text_cheque; ?></label> 
        <?php if ($payment == 'paypal') { ?> 
        <input type="radio" name="payment" value="paypal" id="paypal" checked="checked" /> 
        <?php } else { ?> 
        <input type="radio" name="payment" value="paypal" id="paypal" /> 
        <?php } ?> 
        <label for="paypal"><?php echo $text_paypal; ?></label> 
        <?php if ($payment == 'bank') { ?> 
        <input type="radio" name="payment" value="bank" id="bank" checked="checked" /> 
        <?php } else { ?> 
        <input type="radio" name="payment" value="bank" id="bank" /> 
        <?php } ?> 
        <label for="bank"><?php echo $text_bank; ?></label></td> 
       </tr> 
      </tbody> 
      <tbody id="payment-cheque" class="payment"> 
       <tr> 
       <td><?php echo $entry_cheque; ?></td> 
       <td><input type="text" size="50" name="cheque" value="<?php echo $cheque; ?>" /></td> 
       </tr> 
      </tbody> 
      <tbody class="payment" id="payment-paypal"> 
       <tr> 
       <td><?php echo $entry_paypal; ?></td> 
       <td><input type="text" size="50" name="paypal" value="<?php echo $paypal; ?>" /></td> 
       </tr> 
      </tbody> 
      <tbody id="payment-bank" class="payment"> 
       <tr> 
       <td><?php echo $entry_bank_name; ?></td> 
       <td><input type="text" size="50" name="bank_name" value="<?php echo $bank_name; ?>" /></td> 
       </tr> 
       <tr> 
       <td><?php echo $entry_bank_branch_number; ?></td> 
       <td><input type="text" name="bank_branch_number" value="<?php echo $bank_branch_number; ?>" /></td> 
       </tr> 
       <tr> 
       <td><?php echo $entry_bank_swift_code; ?></td> 
       <td><input type="text" name="bank_swift_code" value="<?php echo $bank_swift_code; ?>" /></td> 
       </tr> 
       <tr> 
       <td><?php echo $entry_bank_account_name; ?></td> 
       <td><input type="text" size="50" name="bank_account_name" value="<?php echo $bank_account_name; ?>" /></td> 
       </tr> 
       <tr> 
       <td><?php echo $entry_bank_account_number; ?></td> 
       <td><input type="text" size="50" name="bank_account_number" value="<?php echo $bank_account_number; ?>" /></td> 
       </tr> 
      </tbody> 
      </table> 
     </div> 
     <h2><?php echo $text_your_password; ?></h2> 
     <div class="content"> 
      <table class="form"> 
      <tr> 
       <td><span class="required">*</span> <?php echo $entry_password; ?></td> 
       <td><input type="password" size="50" name="password" value="<?php echo $password; ?>" /> 
       <?php if ($error_password) { ?> 
       <span class="error"><?php echo $error_password; ?></span> 
       <?php } ?></td> 
      </tr> 
      <tr> 
       <td><span class="required">*</span> <?php echo $entry_confirm; ?></td> 
       <td><input type="password" size="50" name="confirm" value="<?php echo $confirm; ?>" /> 
       <?php if ($error_confirm) { ?> 
       <span class="error"><?php echo $error_confirm; ?></span> 
       <?php } ?></td> 
      </tr> 
      </table> 
     </div> 
     <?php if ($text_agree) { ?> 
     <div class="buttons"> 
      <div class="right"><?php echo $text_agree; ?> 
      <?php if ($agree) { ?> 
      <input type="checkbox" name="agree" value="1" checked="checked" /> 
      <?php } else { ?> 
      <input type="checkbox" name="agree" value="1" /> 
      <?php } ?> 
      <input type="submit" value="<?php echo $button_continue; ?>" class="button" /> 
      </div> 
     </div> 
     <?php } else { ?> 
     <div class="buttons"> 
      <div class="right"> 
      <input type="submit" value="<?php echo $button_continue; ?>" class="button" /> 
      </div> 
     </div> 
     <?php } ?> 
     </form> 
     <?php echo $content_bottom; ?></div> 
    <script type="text/javascript"><!-- 
    $('select[name=\'country_id\']').bind('change', function() { 
     $.ajax({ 
      url: 'index.php?route=affiliate/register/country&country_id=' + this.value, 
      dataType: 'json', 
      beforeSend: function() { 
       $('select[name=\'country_id\']').after('<span class="wait">&nbsp;<img src="catalog/view/theme/default/image/loading.gif" alt="" /></span>'); 
      }, 
      complete: function() { 
       $('.wait').remove(); 
      },   
      success: function(json) { 
       if (json['postcode_required'] == '1') { 
        $('#postcode-required').show(); 
       } else { 
        $('#postcode-required').hide(); 
       } 

       html = '<option value=""><?php echo $text_select; ?></option>'; 

       if (json['zone'] != '') { 
        for (i = 0; i < json['zone'].length; i++) { 
         html += '<option value="' + json['zone'][i]['zone_id'] + '"'; 

         if (json['zone'][i]['zone_id'] == '<?php echo $zone_id; ?>') { 
          html += ' selected="selected"'; 
         } 

         html += '>' + json['zone'][i]['name'] + '</option>'; 
        } 
       } else { 
        html += '<option value="0" selected="selected"><?php echo $text_none; ?></option>'; 
       } 

       $('select[name=\'zone_id\']').html(html); 
      }, 
      error: function(xhr, ajaxOptions, thrownError) { 
       alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 
      } 
     }); 
    }); 

    $('select[name=\'country_id\']').trigger('change'); 
    //--></script> 
    <script type="text/javascript"><!-- 
    $('input[name=\'payment\']').bind('change', function() { 
     $('.payment').hide(); 

     $('#payment-' + this.value).show(); 
    }); 

    $('input[name=\'payment\']:checked').trigger('change'); 
    //--></script> 
    <script type="text/javascript"><!-- 
    $('.colorbox').colorbox({ 
     width: 640, 
     height: 480 
    }); 
    //--></script> 
    <?php echo $footer; ?> 

ответ

0

Проблема заключается в том что при изменении страны (Khu vực) запускается не только affiliate/register/country, но также и account/register/zone i а также для каждого такого запроса вся HTML-страница с загрузкой других ресурсов JS и CSS загружается через запросы AJAX, что действительно странно. Обычно ресурсы JS и CSS должны кэшироваться в браузере, поэтому загрузка их на каждый запрос не будет проблемой, но, как вы могли видеть на вкладке «Консоль Firebug», каждый ресурс JS имеет хэш-адрес timestampt в URL-адресе, поэтому он действительно загружаются каждый раз.

Поскольку вы не можете опубликовать весь шаблон, и я не вижу ничего плохого в файле контроллера, опубликованном или JS в шаблоне, я не вижу там никакой проблемы.

Возможно, вы связали некоторую функцию JS также в глобальном JS-файле для <select name="country">, который также вызывается.

 Смежные вопросы

  • Нет связанных вопросов^_^