首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在CodeIgniter中动态发布我的消息?

如何在CodeIgniter中动态发布我的消息?
EN

Stack Overflow用户
提问于 2013-09-15 19:53:03
回答 2查看 259关注 0票数 0

我只想用AngularJS、AJAX、JQuery或其他最简单的方法告诉用户,用户名和电子邮件已经注册了。

我已经为其他检查实现了AngularJS,只是不需要php。

下面是我的php函数:

代码语言:javascript
复制
public function user_exists() {

$username = $this->db->escape($this->input->post('username'));

$data = array(
    'username' => $username,
    'email' => $this->db->escape($this->input->post('email')),
    'password' => crypt($this->db->escape($this->input->
post('password'))),
'user_id' => md5('I really like pie, '. $username)
            );

$does_user_exist = "SELECT COUNT(`user_id`) FROM `users` WHERE 
    `username` = " . $data['username'] . " || `email` = " . 
$data['email'] . "";

$query = $this->db->query($does_user_exist);

if($query->num_rows() > 0) {
    return true;
}
}

请谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-15 20:17:41

为什么在方法中使用$data数组?要检查是否存在用户,您需要使用MVC架构和类似的代码。对于模特:

代码语言:javascript
复制
class User_Model extends CI_Model
{

    public function is_exists($username, $email)
    {
        $this->db->select('user_id');
        $this->db->where(array(
            'username' => $username,
             'email' => $email
        ));
        $this->db->limit(1);
        return $this->db->get('users')->row('user_id');
    }
}

此控制器代码:

代码语言:javascript
复制
class User extends CI_Controller
{

   public function is_exists()
   {
        $email = $this->input->post('email');
        $username = $this->input->post('username');
        $this->load->model('user_model');
        if(!$this->user_model->is_exists($username, $email))
        {
             $result = array('status' => 200, 'message' => 'Username and email are free');
        }
        else
        {
            $result = array('status' => 400, 'reason' => 'User already exists');
        }
        echo json_encode($result);
   }
}

Ajax查询:

代码语言:javascript
复制
$.ajax({
    url: 'user/is_exists',
    type: 'POST',
    dataType: 'JSON',
    data: {username: username, email: email},
    success: function(data, status, jqXHR){
        if(data.status == 200){
            alert(data.message);
        }
        else{
            alert(data.reason);
        }
    }
});

您需要从正则化表单中获取usernameemail js变量。此外,还可以使用离子Auth油罐Auth扩展。

票数 0
EN

Stack Overflow用户

发布于 2013-09-15 20:19:41

当用户单击注册表单上的submit按钮时,使用$.post()在jQuery中提交它。表单的action属性应该映射到适当的控制器/方法。您调用的方法可以返回要在浏览器中显示的JSON编码消息。

它可能看起来像这样:

代码语言:javascript
复制
$(function() {
    $('#registration', 'input[type="submit"]').on('click', function(event) {
        event.preventDefault();
        var action = $(this).closest('form').attr('action');
        var form = $(this).closest('form').serialize();
        $.post(action, form, function(data) {
           alert(data.message); 
        });
    });
});

在上面的例子中,表单的ID是#注册。JS var 'data‘是PHP方法返回的JSON对象,' message’是该对象的一个属性,其中包含要显示给用户的消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18816829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档