2015-08-03 8 views
0

Я искал здесь, в stackoverflow и на веб-сайтах в целом, но после попытки применить каждое исправление он не работает (проверка не появляется в моей форме) , Я использую эту библиотеку (jqueryvalidation.org) для своей формы и используя удаленную функцию, которая подключается к контроллеру, который ссылается на модель, содержащую проверку базы данных.CodeIgniter jQuery Validation (проверьте, существует ли электронная почта)

Смотрите ниже код и ответить обратно, если что-то не понятно :)

Функции контроллера (метод email_exists) - /application/controllers/Functions.php:

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Functions extends CI_Controller { 
    public function index() { 
     show_404(); 
    } 

    public function email_exists() { 
     if (isset($_POST['email'])) { 
      $this->load->model('account_model'); 

      if ($this->account_model->email_exists($this->input->post('email')) == TRUE) { 
       echo 'TRUE'; 
      } else { 
       echo 'FALSE'; 
      } 
     } 
    } 
} 

счета Модель (метод email_exists) - /application/models/Account_model.php:

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Account_model extends CI_Model { 
    public function email_exists($email) { 
     $query = $this->db->select('email_address')->get_where('accounts', array('email_address' => $email)); 

     if ($query->num_rows() == 1) { 
      return TRUE; 
     } else { 
      return FALSE; 
     } 
    } 
} 

JQuery Validation Правила (часть)

rules: { 
    'email_address': { 
     required: true, 
     email: true, 
     remote: { 
      url: "/functions/email_exists", 
      type: "post", 
      data: { 
       email: function() { 
        return $("#email").val(); 
       } 
      } 
     } 
    } 

Форма ввода (электронный раздел - часть файла):

$input_email_address = array('name' => 'email_address', 
          'type' => 'email', 
          'id' => 'email_address', 
          'class' => 'form-control', 
          'value' => $this->input->post('email_address'), 
          'autofocus' => 'autofocus'); 
echo form_input($input_email_address); 

Любая помощь будет очень ценна, я играл с это с утра, но не повезло. Спасибо заранее :)

ответ

1

The Selecter не то же самое, что и поле ввода.

#email! = #email_address

rules: { 
    'email_address': { 
     required: true, 
     email: true, 
     remote: { 
      url: "http://YOUR_URL", 
      type: "post", 
      data: { 
       email: function() { 
        return $("#email_address").val(); 
       } 
      } 
     } 
    } 
+1

Пожалуйста, удалите ссылку, если это возможно, забыл его там! ;) Большое спасибо за вашу помощь, это верно! –

+1

Я удалил URL. :) – Lirux

0

Я лучше сказать Используйте jQuery.validator.addMethod('isEmailExists'....

И правила, как

email: { required: true, email: true, isEmailExists: true },

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