【问题标题】:checking email or user name if already exitst using ajax in codeigniter在 codeigniter 中使用 ajax 检查电子邮件或用户名是否已经存在
【发布时间】:2015-02-28 06:02:05
【问题描述】:

我创建了一个表单,其中只包含一个名为 first_name 的输入标签。

现在我想显示 first_name 是否存在于数据库中。

我创建了一个数据库名称 db_practice ,表名称是 tbl_user 并且有很多字段。 first_name 是字段名称之一。

这是我的所有代码。请帮我找出我的问题。

这是查看代码:

<html>
    <head>
        <meta charset="UTF-8">
        <title>Check username availability using jQuery, AJAX</title>

        <script type="text/javascript">
    $(document).ready(function() {
        $("#username").live("blur", function(e) {
            $('#msg').hide();
            if ($('#username').val() == null || $('#username').val() == "") {
                $('#msg').show();
                $("#msg").html("Username is required field.").css("color", "red");
            } else {
                $.ajax({
                    type: "POST",
                    url: "<?php echo base_url();?>"+"/welcome/get_user",
                    data: $('#signupform').serialize(),
                    dataType: "html",
                    cache: false,
                    success: function(msg) {
                        $('#msg').show();
                        $("#msg").html(msg);
                    },
                    error: function(jqXHR, textStatus, errorThrown) {
                        $('#msg').show();
                        $("#msg").html(textStatus + " " + errorThrown);
                    }
                });
            }
        });
    });
</script>
    </head>
    <body>
        <div style="margin: 10px 0 0 10px;width: 600px">
            <h3>Codeigniter username availability check</h3>
            <form id="signupform" style="padding: 10px;">
                <fieldset>
                    <legend>Check username</legend>
                    <div>
                        <label>Username</label><br/>
                        <input type="text" name="first_name" id="username"/>
                        <div id="msg"></div>
                    </div>
                </fieldset>
            </form>
        </div>
        <script src="<?php echo assets_url(); ?>js/jquery-1.9.1.min.js"></script>
        <script src="<?php echo assets_url(); ?>js/jquery-migrate-1.2.1.js"></script>
        <script src="<?php echo assets_url(); ?>js/jquery-ui-1.10.3-custom.min.js">
        </script>
    </body>

</html>
<!-- below jquery things triggered on onblur event and checks the username availability in the database -->

这是控制器代码:

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

class Welcome extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('my_model');
    }
    public function index()
    {
        $this->load->view('welcome_message');
    }
        public function get_user()
    {             
          if (isset($_POST['first_name']))
              {
                $username = $_POST['first_name'];
                $results = $this->my_model->get_user($username);
                if ($results === TRUE)
                    {
                        echo '<span style="color:red;">Username unavailable</span>';
                    }
                    else
                        {
                            echo '<span style="color:green;">Username available</span>';
                        }
             } 
             else {
                    echo '<span style="color:red;">Username is required field.</span>';
                  }
    }
}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */

这是型号代码:

<?php

/*  * To change this template, choose Tools | Templates  * and open the template in the editor.  */

/**  * Description of my_model  *  * @author Masud  */ class My_Model extends CI_Model {
    //put your code here
    public function get_user($username)
    {
        $this->db->select('*');
        $this->db->from('tbl_user');
        $this->db->where('first_name',$username);
        $query = $this->db->get();
        $result = $query->row();
        if ($result)
        {
         return TRUE;
        }
        else 
         {
            return FALSE;
        }

        } }

?>

【问题讨论】:

  • 不需要使用块引用

标签: php jquery ajax codeigniter


【解决方案1】:

修复:

  1. 查看中:url: "&lt;?php echo base_url(); ?&gt;"+"/welcome/get_user",
  2. 在控制器中:$results = $this-&gt;my_model-&gt;get_user($username); // not My_model, it's my_model
  3. 在模型中:
    1. class My_model extends CI_Model { // My_model not My_Model
    2. $result = $query-&gt;row(); // $query, not $query_result

【讨论】:

  • 我已经完成了您要求更正的内容,但仍然无法正常工作。可能是我的 ajax 链接不起作用。
  • 打开检查元素,转到网络选项卡并检查是否正在发送 ajax 请求。
  • 打开谷歌浏览器,右键点击网页并选择检查元素,然后在顶部有一些标签,如元素、网络、来源、时间线等。选择网络标签。然后触发您的事件并观察请求。
  • 当我点击预览菜单时所有 js 文件显示 404 然后它显示 404 页面未找到。但只有 html 标签处于活动状态,它表示绿色。请帮忙
  • 首先,确保 jquery 正在加载。然后,确保它在 ajax 请求函数之前加载。写 console.log("test");在 $("#username").live("blur", function(e) 函数的不同行进行测试。打开检查元素和控制台选项卡以检查您的日志。
【解决方案2】:

我已经发布了一个问题,其中输入标签包含来自用户的用户名。如果该用户名已经存在于数据库中,那么它将显示用户名不可用并且用户名不存在于数据库中然后它显示用户名可用。我分享它的解决方案。 .....

查看代码

<html>
    <head>
        <meta charset="UTF-8">
        <title>Check username availability using jQuery, AJAX</title>
       <script type="text/javascript">
            <!--
            //Create a boolean variable to check for a valid Internet Explorer instance.
            var xmlhttp = false;
            //Check if we are using IE.
             try {
            //If the Javascript version is greater than 5.
                  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
            //alert ("You are using Microsoft Internet Explorer.");
                 } catch (e) {
            //If not, then use the older active x object.
                             try {
            //If we are using Internet Explorer.
                                  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            //alert ("You are using Microsoft Internet Explorer");
                                 } catch (E) {
            //Else we must be using a non-IE browser.
                                    xmlhttp = false;
                                }
                            }
            //If we are using a non-IE browser, create a javascript instance of the object.
                    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
                         xmlhttp = new XMLHttpRequest();
            //alert ("You are not using Microsoft Internet Explorer");
                                    }
            function makerequest( user_name,objID)
              {
                  if (user_name.length  == 0) {
                    document.getElementById("txtHint").innerHTML = "Username available";
                    return;
                } else{
                //var user_name = document.getElementById('username').value;
                serverPage='welcome/valid_user_name/'+user_name;
                //alert(serverPage);
                xmlhttp.open("GET", serverPage);
                xmlhttp.onreadystatechange = function()
                 {
                //alert(xmlhttp.readyState);
                    //alert(xmlhttp.status);
                        if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
                         {
                                document.getElementById(objID).innerHTML = xmlhttp.responseText;
                                //document.getElementById(objcw).innerHTML = xmlhttp.responseText;
                         }
                }
             }
                xmlhttp.send(null);
            }
//-->                        
        </script>
    </head>
    <body>
        <div style="margin: 10px 0 0 10px;width: 600px">
            <h3>Codeigniter username availability check</h3>
            <form id="signupform" style="padding: 10px;">
                <fieldset>
                    <legend>Check username</legend>
                    <div>
                        <label>Username</label><br/>
                        <input type="text" name="first_name"
                           id="username" onkeyup="makerequest(this.value,'msg')"/>
                        <span id="msg"></span>
                    </div>
                    <div>
                        <label>Email Address</label><br/>
                        <input type="email" name="email_address" id="email_address"/>
                    </div>
                </fieldset>
            </form>
        </div>
        </script>
    </body>
</html>

控制器代码

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

class Welcome extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('my_model');
    }
    public function index()
    {
        $this->load->view('welcome_message');
    }

        public function valid_user_name($user_name)
        {
           $result = $this->my_model->get_user($user_name);
           if ($result === TRUE)
                    {
                        echo '<span style="color:red;">Username unavailable</span>';
                    }
                    else
                        {
                            echo '<span style="color:green;">Username available</span>';
                        }
             } 
}

此型号代码

<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of my_model
 *
 * @author Masud
 */
class My_Model extends CI_Model {
    //put your code here
    public function get_user($user_name)
    {
        $this->db->select('*');
        $this->db->from('tbl_user');
        $this->db->where('first_name',$user_name);
        $query = $this->db->get();
        $result = $query->row();
        if ($result)
        {
         return TRUE;
        }
        else 
         {
            return FALSE;
        }

        }
}

?>

这些代码被证明了。任何人都可以使用它..

【讨论】:

    【解决方案3】:

    进行这些更改并查看。

    在 Ajax 代码中,url: "&lt;?php echo base_url();?&gt;welcome/get_user",

    在ajax代码段之后放

    return false;
    

    添加这些之后,您的 javascript 将是这样的。

    <script type="text/javascript">
        $(document).ready(function() {
            $("#username").live("blur", function(e) {
                $('#msg').hide();
                if ($('#username').val() == null || $('#username').val() == "") {
                    $('#msg').show();
                    $("#msg").html("Username is required field.").css("color", "red");
                } else {
                    $.ajax({
                        type: "POST",
                        url: "<?php echo base_url();?>welcome/get_user",
                        data: $('#signupform').serialize(),
                        dataType: "html",
                        cache: false,
                        success: function(msg) {
                            $('#msg').show();
                            $("#msg").html(msg);
                        },
                        error: function(jqXHR, textStatus, errorThrown) {
                            $('#msg').show();
                            $("#msg").html(textStatus + " " + errorThrown);
                        }
                    });
                    
                    return false;
                }
            });
        });
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      相关资源
      最近更新 更多