2017-02-02 1 views
2

Ich validiere Daten, indem ich auf die Schaltfläche "Senden" klicke und dann erneut die Ansichten lade. Ich möchte nur die Fehler auf der Seite zeigen, bevor der Controller geladen wird. Es ist keine Formvalidierung. es ist nur eine Datengültigkeitsprüfung.Codeigniter: Überprüfen Sie die Daten, bevor Sie zum Controller gehen

+1

Was meinen Sie mit Daten? – rahulsm

+0

Datenvalidierung? –

+1

bedeutet zum Beispiel ich überprüfe ein Array, ob es doppelte Werte haben oder nicht. Wenn nicht, dann gebe Werte in die Datenbank ein sonst gib einen Fehler zurück. –

Antwort

2

Ich denke, Sie können die Validierung mit AJAX tun.

0
in view page 

    <script type="text/javascript"> 
    $(document).ready(function() { 
     /// make loader hidden in start 
    $('#loading').hide(); 
    $('#email').blur(function(){ 
     var email_val = $("#email").val(); 
     var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-][email protected][a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/; 
     if(filter.test(email_val)){ 
      // show loader 
      $('#loading').show(); 
      $.post("<?php echo site_url()?>/user/email_check", { 
       email: email_val 
      }, function(response){ 
       $('#loading').hide(); 
       $('#message').html('').html(response.message).show().delay(4000).fadeOut(); 
      }); 
      return false; 
     } 
    }); 

    }); 
</script> 

in controller function 

    public function email_check() 
    { 
     // allow only Ajax request  
     if($this->input->is_ajax_request()) { 
     // grab the email value from the post variable. 
     $email = $this->input->post('email'); 
     // check in database - table name : tbl_users , Field name in the table : email 
     if(!$this->form_validation->is_unique($email, 'tbl_users.email')) { 
     // set the json object as output     
     $this->output->set_content_type('application/json')->set_output(json_encode(array('message' => 'The email is already taken, choose another one'))); 
      } 
     } 
    } 
Verwandte Themen