Welcome Guest, Not a member yet? Register   Sign In
Ajax base Form validation?
#3

[eluser]cideveloper[/eluser]
One thing you should make sure you do is gracefully degrade your form. Make sure it works without JavaScript enabled as well as with. This is just a basic form validation example using CI form validation and Jquery. Take note: I have enclosed the javascript in square brackets cause the forum removes it if you use <>, so you need to replace those.

Controller - welcome.php
Code:
class Welcome extends MY_Controller {

    function __construct()
    {
        //Contructor function
        parent::MY_Controller();
    }

    function index()
    {
        $this->load->library('form_validation');
        $this->form_validation->set_rules('email', 'Email', 'required|xss_clean|valid_email');
        $this->form_validation->set_rules('password', 'Password', 'required|xss_clean|min_length[6]|max_length[18]');
        $this->form_validation->set_rules('confirm_password', 'Password Confirmation', 'required|xss_clean|min_length[6]|max_length[18]|matches[password]');
        $data['title'] = 'get177539';
        if ($this->form_validation->run() == FALSE){
            if(IS_AJAX) {
                $data = array (
                    'status' => false,
                    'msg' => validation_errors()
                );
                echo json_encode($data);
            } else {
                $this->load->view('welcome_form');
            }
        } else {
            $data = array (
                'status' => true,
                'msg' => '<h1>Form Submitted</h1>'
            );
            if(IS_AJAX) {
                echo json_encode($data);
            } else {
                $this->load->view('welcome_formsuccess', $data);
            }
        }
    }

}

Form View - welcome_form.php
Code:
<!DOCTYPE HTML>
&lt;html lang="en"&gt;
&lt;head&gt;
&lt;meta charset="utf-8" /&gt;
&lt;title&gt;CI and JQuery Form Validation&lt;/title&gt;
&lt;link rel="stylesheet" href="style.css" /&gt;
&lt;/head&gt;
&lt;body&gt;
<div>
&lt;form id="val_form" action="&lt;?=site_url('welcome')?&gt;" method="post"&gt;
<p><label for="email">Email:</label>&lt;input type="text" name="email" id="email" value="&lt;?php echo set_value('email'); ?&gt;" /&gt;&lt;/p>
<p><label for="password">Password:</label>&lt;input type="password" name="password" id="password" value="&lt;?php echo set_value('password'); ?&gt;" /&gt;&lt;/p>
<p><label for="confirm_password">Confirm Password:</label>&lt;input type="password" name="confirm_password" id="confirm_password" value="&lt;?php echo set_value('password'); ?&gt;" /&gt;&lt;/p>
<p>&lt;input type="submit" value="Submit" class="button" /&gt;&lt;/p>
&lt;/form&gt;
<p id="val_form_errors">
&lt;?php echo validation_errors(); ?&gt;
</p>
</div>
[script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"][/script]
[script type="text/javascript" src="&lt;?=base_url()?&gt;assets/js/site.js"][/script]
&lt;/body&gt;
&lt;/html&gt;

Success View - welcome_formsuccess.php
Code:
<!DOCTYPE HTML>
&lt;html lang="en"&gt;
&lt;head&gt;
&lt;meta charset="utf-8" /&gt;
&lt;title&gt;CI and JQuery Form Validation&lt;/title&gt;
&lt;link rel="stylesheet" href="style.css" /&gt;
&lt;/head&gt;
&lt;body&gt;
<div>
&lt;?=$msg;?&gt;
</div>
[script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"][/script]
[script type="text/javascript" src="&lt;?=base_url()?&gt;assets/js/site.js"][/script]
&lt;/body&gt;
&lt;/html&gt;


JQuery - site.js
Code:
$(function(){

    $('#val_form').submit(function(e){
        $('#val_form_errors').hide();
        e.preventDefault();
        $.post($(this).attr('action'),$(this).serialize(),function(data){
            //console.log(data);
            if (data.status){
                $('#val_form_errors').html(data.msg).fadeIn('slow').css({'color':'green', 'border':'1px solid green', 'padding':'20px', 'display': 'inline-block'});
            } else {
                $('#val_form_errors').html(data.msg).fadeIn('slow').css({'color':'red', 'border':'1px solid #FF3333', 'padding':'20px', 'display': 'inline-block'});
            }

        }, 'json');
    });

});


Messages In This Thread
Ajax base Form validation? - by El Forum - 01-15-2011, 04:24 AM
Ajax base Form validation? - by El Forum - 01-15-2011, 05:40 AM
Ajax base Form validation? - by El Forum - 01-15-2011, 12:26 PM
Ajax base Form validation? - by El Forum - 01-15-2011, 06:38 PM
Ajax base Form validation? - by El Forum - 01-15-2011, 07:14 PM
Ajax base Form validation? - by El Forum - 01-17-2011, 12:42 AM
Ajax base Form validation? - by El Forum - 01-27-2011, 02:02 AM
Ajax base Form validation? - by El Forum - 01-27-2011, 06:39 PM
Ajax base Form validation? - by El Forum - 01-27-2011, 07:56 PM
Ajax base Form validation? - by El Forum - 03-11-2011, 02:20 AM
Ajax base Form validation? - by El Forum - 03-11-2011, 03:55 AM
Ajax base Form validation? - by El Forum - 04-10-2011, 07:01 AM
Ajax base Form validation? - by El Forum - 04-10-2011, 10:56 AM



Theme © iAndrew 2016 - Forum software by © MyBB