![](/img/trans.png)
[英]when I use global scope variable without 'var', its showing me Error. why?
[英]When i call function it's given me error. why?
出現錯誤
用戶名功能未調用,但我正在為其提供價值
Message: call_user_func_array() expects parameter 1 to be a valid callback, class 'Error' does not have a method 'index'
我的JavaScript是:
email : { required : true, email : true, remote : { url : baseURL + "checkEmailExists", type :"post"} },
username :{ required : true, remote : { url : baseURL + "checkUsernameExists", type :"post"} },
password : { required : true },
我的控制器是:
function checkEmailExists()
{
$id = $this->input->post("id");
$email = $this->input->post("email");
if(empty($id)){
$result1 = $this->user_model->checkEmailExists($email);
} else {
$result1 = $this->user_model->checkEmailExists($email, $id);
}
if(empty($result1)){ echo("true"); }
else { echo("false"); }
}
function checkUsernameExists()
{
$id = $this->input->post("id");
$username = $this->input->post("username");
if(empty($id)){
$result = $this->user_model->checkUsernameExists($username);
} else {
$result = $this->user_model->checkUsernameExists($username, $id);
}
if(empty($result)){ echo("true"); }
else { echo("false"); }
}
我的模型是:
function checkEmailExists($email, $id = 0)
{
$this->db->select("email");
$this->db->from("admins");
$this->db->where("email", $email);
if($id != 0){
$this->db->where("id !=", $id);
}
$query = $this->db->get();
return $query->result();
}
function checkUsernameExists($username, $id = '')
{
$this->db->select("username");
$this->db->from("admins");
$this->db->where("username", $username);
if($id != ''){
$this->db->where("id !=", $id);
}
$query1 = $this->db->get();
echo '<pre>';
print_r($query1);
die();
return $query1->result();
}
我的視圖部分是:
<div class="col-md-6">
<div class="form-group">
<label for="email">Email address</label><span style="color: red">*</span>
<input type="text" class="form-control required email" id="email" name="email" maxlength="128">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="username">User Name</label><span style="color: red">*</span>
<input type="text" class="form-control required" id="username" name="username" maxlength="128">
</div>
</div>
我的電子郵件驗證被完美調用,但我的用戶名驗證未完美調用。 它顯示出call_fun .....的錯誤。這是為了檢查電子郵件或用戶名是否已經退出
在下面的代碼中,您不需要單獨的控制器功能即可檢查用戶名或電子郵件是否已存在。 您可以組合成一個控制器功能。
它也可以同時在注冊和編輯配置文件中工作。
控制器:-
public function fieldcheck()
{
if( $this->input->is_ajax_request() && ( $this->input->post('email') || $this->input->post('username') ) )
{
if( $this->input->post('id') )
{
$id = $this->encrypt->decode($this->input->post('id'));
}
else
{
$id = 0;
}
if( $this->input->post('email') )
{
$field = 'email';
$fieldvalue = $this->input->post('email');
}
if( $this->input->post('username') )
{
$field = 'username';
$fieldvalue = $this->input->post('username');
}
if($field)
{
//Loading Model File
$this->load->model('user_model');
$result = $this->user_model->checkExists($id,$field,$fieldvalue);
if ($result == 'new')
{
echo json_encode( array('result'=>'new') );
die();
}
else
{
echo json_encode( array('result'=>'old') );
die();
}
}
}
else
{
redirect('user', 'refresh');
}
}
型號:-
//Querying to Check E-mail or Username is already exists
function checkExists($id,$field,$fieldvalue)
{
switch($field)
{
case 'email' : $dbfield = 'email';break;
case 'username' : $dbfield = 'username';break;
}
if($id != 0)
{
$option = array( 'id !=' => $id, $dbfield => $fieldvalue );
}
else
{
$option = array( $dbfield => $fieldvalue );
}
//echo "<pre>";
//print_r($option);
//die();
$query = $this->db->get_where('admins', $option);
if ($query->num_rows() > 0)
{
return 'old';
}
else
{
return 'new';
}
}
查看:-
這里有1條建議。 請用於“電子郵件地址輸入”字段。
<div class="col-md-6">
<div class="form-group">
<label for="email">Email address</label><span style="color: red">*</span>
<input type="email" class="form-control required email" id="email" name="email" maxlength="128" onchange="checkusername(this.value);">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="username">User Name</label><span style="color: red">*</span>
<input type="text" class="form-control required" id="username" name="username" maxlength="128" onchange="checkemail(this.value);">
</div>
</div>
Javascript:-
<script type="text/javascript">
function trim(stringToTrim) {
return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function checkemail(email)
{
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if( trim(email) != '' && filter.test(trim(email)) )
{
$.ajax({
type : "POST",
url : "<?php echo site_url('user/fieldcheck');?>", //Controller Name / Function Name
data : { <?php if($this->uri->segment(2) == 'edit' ) echo "'id' : ".$user[0]['id'].", "; ?> 'email' : email },
dataType : "json",
cache : false,
success : function(data){
if( data.result == 'old')
{
alert('E-mail already Taken.');
return false;
}
}
});
}
else
{
alert('Please enter valid E-mail Id.');
return false;
}
}
function checkusername(username)
{
if( trim(username) != '' )
{
$.ajax({
type : "POST",
url : "<?php echo site_url('user/fieldcheck');?>", //Controller Name / Function Name
data : { <?php if($this->uri->segment(2) == 'edit' ) echo "'id' : ".$user[0]['id'].", "; ?> 'username' : username },
dataType : "json",
cache : false,
success : function(data){
if( data.result == 'old')
{
alert('Username already Taken.');
return false;
}
}
});
}
else
{
alert('Please enter Username.');
return false;
}
}
</script>
希望以上代碼對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.