2013-04-05 4 views
0

Я пытаюсь проверить некоторые поля witj ajax через codeigniter, но не могу понять, как это он «прав».codeigniter ajax form_validation (с jquery)

Мой Аякса:

var timeout = null; 

$(document).ready(function(){ 

    $('.new-user-box input').each(function(){ 

     var key = $(this).attr('name'); 

     $(this).on("keyup", function() { 
      var value = $(this).val(); 

      if(value=="") { 
       return false; 
      } 

      var json = {}; 
      json[key] = value; 
      json['ajax'] = '1'; 

      if (timeout) { 
       clearTimeout(timeout); 
      } 
      timeout = setTimeout(function() { 
       $.ajax({ 
       url: 'auth/ajax_validate', 
       type: 'post', 
       data: json, 
       success: function(data) { 
        console.log(data); 
       } 
       }) 
      }, 1000) 
     }); 

    }) 

}) 

В основном это позволяет все мои поля ввода отправить их значение на KeyUp (через 1 секунду).

Мой PHP (только отрывок из теста имени пользователя):

<?php 

    function ajax_validate() 
    { 

     // Test if the method is called by ajax and validate the input field 
     if($this->input->post('ajax')) 
     { 
      if($this->input->post('username')) 
      { 
       if($this->form_validation->set_rules('username', 'Brugernavn', 'required|trim|min_length[1]|max_length[20]|is_unique[users.username]|xss_clean') && !$this->form_validation->run()) 
       { 
        $validates = 0; 
       } 
       else { 
        $validates = 1; 
        $error = ""; 
       } 
       $response = array($validates,$form_error('username')); 
       echo json_encode($response); 
       exit; 
      } 
     } 

    } 

?> 

Ответ я получаю это ошибка PHP:

Сообщение: Undefined переменной: form_error

Фатальная ошибка: Функция имя должно быть строкой в ​​папке \ PATH TO CODEIGNITER \ application \ modules \ auth \ controllers \ auth.php в строке 401

Надеюсь, что кто-то подскажет, как исправить это, или делайте это по-другому. Заранее спасибо.

ответ

6

Выньте $ до "form_error".

$response = array($validates,$form_error('username')); 

в

$response = array($validates,form_error('username')); 
+1

да да да да – SpYk3HH

+0

@ SpYk3HH Да мне это нравится ': D' – Jai

+0

Ничего себе, я не могу поверить, как невероятно глупо сейчас я чувствую, что я этого не видел. Спасибо! – jah