我只想用AngularJS、AJAX、JQuery或其他最简单的方法告诉用户,用户名和电子邮件已经注册了。
我已经为其他检查实现了AngularJS,只是不需要php。
下面是我的php函数:
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;
}
}请谢谢你。
发布于 2013-09-15 20:17:41
为什么在方法中使用$data数组?要检查是否存在用户,您需要使用MVC架构和类似的代码。对于模特:
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');
}
}此控制器代码:
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查询:
$.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);
}
}
});您需要从正则化表单中获取username和email js变量。此外,还可以使用离子Auth或油罐Auth扩展。
发布于 2013-09-15 20:19:41
当用户单击注册表单上的submit按钮时,使用$.post()在jQuery中提交它。表单的action属性应该映射到适当的控制器/方法。您调用的方法可以返回要在浏览器中显示的JSON编码消息。
它可能看起来像这样:
$(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’是该对象的一个属性,其中包含要显示给用户的消息。
https://stackoverflow.com/questions/18816829
复制相似问题