Welcome Guest, Not a member yet? Register   Sign In
ajax validation in ci for registered users
#1

[eluser]santorini[/eluser]
Hello together,

I've created a form for new users. ajax jquery validation checks if the username already exists in the db. this works fine...
But when the newly registered user wants to change his profile (name, email etc), the username is checked again..
how can i solve this problem?

nutzer.js:

Code:
jQuery(document).ready(function ($) {


        $("#commentForm").validate({
          


                rules:{
                vorname:{
                    required:true,
                    minlength:2
                },
                nachname:{
                    required:true,
                    minlength:2
                },
                emailadresse:{
                    required:true,
                    email:true,
                    remote:{
                        url:WEBROOT + "redaktion/nutzer/register_email_exists",
                        type:"post",
                        data:{
                            emailadresse:function () {
                                return $("#emailadresse").val();
                            }
                        }
                    }
                },
                benutzername:{
                    required:true,
                    minlength:2,
                    remote:{
                        url:WEBROOT + "redaktion/nutzer/register_benutzer_exists",
                        type:"post",
                        data:{
                            benutzername:function () {
                                return $("#benutzername").val();
                            }
                        }
                    }

                },
                passwort: {
                    required: true,
                    minlength: 4
                },
                passwort2: {
                    required: true,
                    minlength: 4,
                    equalTo: "#passwort"
                }


            }

controller:
Code:
function register_benutzer_exists () {
            if (array_key_exists('benutzername', $_POST)) {
                if ($this->benutzer_exists($this->input->post('benutzername')) == TRUE) {
                    echo json_encode(FALSE);
                } else {
                    echo json_encode(TRUE);
                }
            }
        }

     private function benutzer_exists ($benutzer) {
            $this->db->where('benutzername', $benutzer);
            $query = $this->db->get('bvs_nutzer');
            if ($query->num_rows() > 0) {
                return TRUE;
                //echo '<p>' . $nutzer_id . '</p>';
            } else {
                return FALSE;
            }
        }

thanks for helping me :-)



#2

[eluser]santorini[/eluser]
update:
i've found a solution for my problem..nevertheless it's not a clean one.
i check the 'url' with an if/else statement. if 'edit' appears the 'username' won't be validated by an ajax request...this one works, but it is still not a clean solution,
because it could be that the username now will be changed in a username which already exists in the database. this won't be checked.
any help?

Code:
if ([removed].href.indexOf('edit') > -1) {
        $("#commentForm").validate({
            rules:{
                vorname:{
                    required:true,
                    minlength:2
                },
                nachname:{
                    required:true,
                    minlength:2
                },
                emailadresse:{
                    required:true,
                    email:true

                },

                benutzername:{
                    required:true,
                    minlength:2


                },
                passwort:{
                    required:true,
                    minlength:4
                },
                passwort2:{
                    required:true,
                    minlength:4,
                    equalTo:"#passwort"
                }
            }
        });
    } else {

        $("#commentForm").validate({



            rules:{
                vorname:{
                    required:true,
                    minlength:2
                },
                nachname:{
                    required:true,
                    minlength:2
                },
                emailadresse:{
                    required:true,
                    email:true,
                    remote:{
                        url:WEBROOT + "redaktion/nutzer/register_email_exists",
                        type:"post",
                        data:{
                            emailadresse:function () {
                                return $("#emailadresse").val();
                            }
                        }
                    }
                },

                benutzername:{
                    required:true,
                    minlength:2,
                    remote:{
                        url:WEBROOT + "redaktion/nutzer/register_benutzer_exists",
                        type:"post",
                        data:{
                            benutzername:function () {
                                return $("#benutzername").val();
                            }
                        }
                    }

                },
                passwort:{
                    required:true,
                    minlength:4
                },
                passwort2:{
                    required:true,
                    minlength:4,
                    equalTo:"#passwort"
                }
            }
        });
    }





Theme © iAndrew 2016 - Forum software by © MyBB