2016-04-04 17 views
0

Jenc (veya ajax?) Kullanarak veritabanından gelen opencart kayıt sayfasındaki e-postayı kontrol etmek istiyorum, bu yüzden eğer mevcutsa kayıt formunda bir not olacaktır.opencart 1.5.6.4 kayıt olunca email müsaitliğini kontrol edin

Herhangi bir yardım lütfen? Teşekkür

Tamam, bu nedenle bu ben

signup.tpl

<tr> 
     <td><span class="required">*</span> <?php echo $entry_email; ?><br /> 
      <div id="email_availability_result"></div> 
     </td> 
     </tr> 
     <tr> 
     <td><input type="text" id="email" class="form-control" name="email" value="<?php echo $email; ?>" /> 
     <?php if ($error_email) { ?> 
     <span class="error"><?php echo $error_email; ?></span> 
     <?php } ?></td> 
    </tr> 

signup.tpl

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#email').keyup(function(){ 
      var email = $('#email').val(); 
      if(email.length > 2) { 
       $('#email_availability_result').html('Loading..'); 
       var post_string = 'email='+email; 
       $.ajax({ 

        dataType: 'json', 
        type : 'POST', 
        data : post_string, 

        url: 'index.php?route=account/signup/emailCheck', 

        success: function(json) { 
         $('.success, .warning, .attention, information, .error').remove(); 

         if (json['success']) { 
          $('#email_availability_result').html('<span class="success">' + json['success'] + '</span>'); 
         } 

         if (json['warning']) { 
          $('#email_availability_result').html('<span class="success">' + json['warning'] + '</span>'); 
         } 
        } 

       }); 
      }else{ 
       $('#email_availability_result').html(''); 
      } 
     }); 
    });  

kayıt şimdiye kadar ne yaptık olduğunu .php (devam silindir)

public function emailCheck() { 

    $this->load->model('account/signup'); 

    $json = array(); 

    if(isset($this->request->post['email'])){ 

     $email = $this->request->post['email']; 

     $result = $this->model_account_signup->getEmailBySignUp($email); 

     $json['success'] = "Email name available"; 

     $json['warning'] = "Email already taken"; 

    } 

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

signup.php (modeli) Bu çalışmıyor

public function getEmailBySignUp($email) { 
    $query = $this->db->query("SELECT count(*) as total FROM `" . DB_PREFIX . "user` WHERE email = '" . $this->db->escape($email) . "'"); 
    return $query->row['total']; 
} 

.

cevap

1

Bu işlevsellik açık sepetinde zaten, ama reload.You Sen ajax ile bu modeli işlevini çağırabilirsiniz

Catalog/accounts/register.php function name getTotalCustomersByEmail()

üzerinde kontrol edebilir ve anlık ileti gösterebilir sayfa üzerinde çalışmaya olacak e-posta adresi kontrol ediliyor.

+0

Teşekkürler Tanmoy, ama ben sadece yeni biriyim. Bahsettiğin kodu görebiliyorum ama nasıl yapacağımı bilmiyorum. Nasıl yazacağını buraya yazabilir misin? – Faiz

+0

Sadece bir e-posta alanı için bir olay ile bir js yazın, burada ajax yazabilirsiniz, bu fonksiyon ile kontrol cihazında bunu yapabiliriz.Ajax'ı nasıl arayacağınızı görmek istiyorsanız, o zaman/template/checkout/checkout'a gidin. tpl, orada arama yapan bir sürü ajax var. – Tanmoy

+0

Yeni güncelledim ama hala çalışmıyor. Onun nesi var? – Faiz