2015-11-17 25 views

回答

0

请试试这个 -

控制器 - school.php

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

class School extends CI_Controller { 

public function registration() 
     { 
     $this->load->view('registration'); 
     } 

public function insert() 
{ 
    $data = $_POST; 
    $email = $data['email']; 
    $result = $this->school_model->checkEmail($email); 
    if(empty($result)) 
    { 
     $this->school_model->insertData($data); 
     $msg = "Data Insert Successfully"; 
    } 
    else 
    { 
     $msg = "Email Already Exists"; 
    } 
    $this->session->set_flashdata('msg', $msg); 
    redirect('school/registration'); 
} 

} 

?> 

模型 - school_model.php

<?php 
class School_model extends CI_Model 
{ 
    public function checkEmail($email) 
     { 
      $this -> db -> select('*'); 
      $this -> db -> from('users'); 
      $this -> db -> where('email', $email); 
      $query = $this -> db -> get(); 
      return $query->result_array(); 
     } 

    public function insertData($data) 
     { 
      $this->db->insert('users', $data); 
     } 
} 
?> 

视图 - registration.php的

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
<div id="show_flash_msg"><?php echo $this->session->flashdata('msg'); ?></div> 
<form method="post" action="<?php echo base_url(); ?>school/insert"> 
    Name: <input type="text" name="name"> 
    Email: <input type="text" name="email"> 
    Password: <input type="text" name="password"> 
    Mobile: <input type="text" name="mobile"> 
    <input type="submit" value="Submit"> 
</form> 
</body> 
</html> 
+0

为什么woulnd你使用它有它自己在建造函数来检查,如果事情是唯一笨的form_validation?你可以使用$ this-> form_validation-> set_rules('email','Email','required | valid_email | is_unique [users.email]'); – killstreet

+0

是的,我们也可以使用该方法,但对于表单验证HTML5验证是最好的,因为它的检查表单没有刷新页面,并在ci表单验证刷新页面...所以这将是最好的方式 –

+0

你不应该取决于HTML验证,此外,由于您没有Ajax,您仍然在进行刷新。你仍然会像往常一样发帖。你的方法不提供任何额外的东西。除此之外,当您只想计算结果时,没有理由执行$ this-> db-> select(“*”)。 – killstreet

0

如果您使用的是fo笨的rm_validation你应该添加一条规则如下:

$this->form_validation->set_rules('email', 'Email', 'required|valid_email|is_unique[users.email]'); 
0

你可以创建一个回调函数,请检查是否电子邮件存在或不使用你的模型像 控制器

$this->form_validation->set_rules("email","Email","required|callback_isEmailExist"); 

现在在您的控制器中创建回调函数

function isEmailExist($email) 
{ 
$verifyemail = $this->model_name->verifyemail($email) 
if($verifyemail == true) 
{ 
return false; 
} 
else{ 
return true; 
} 
} 

型号

function verifyemail($email) 
{ 
$this->db->select("*"); 
$this->db->from("table_name"); 
$this->db->where("email",$email); 
$query = $this->db->get(); 
if($query->num_rows() == 1) 
{ 
return true; 
} 
else{ 
return false; 
} 
} 
相关问题