Php Codeigniter 2-My_控制器中的回调函数
我所有的回调函数都在我的_控制器中,这样它们就不会在整个网站中重复。这很好,但由于某种原因,当我使用AJAX发布信息时,我的一个函数不起作用,而是在其他页面上工作。我使用回调时收到的消息是:Php Codeigniter 2-My_控制器中的回调函数,php,codeigniter,controller,codeigniter-2,Php,Codeigniter,Controller,Codeigniter 2,我所有的回调函数都在我的_控制器中,这样它们就不会在整个网站中重复。这很好,但由于某种原因,当我使用AJAX发布信息时,我的一个函数不起作用,而是在其他页面上工作。我使用回调时收到的消息是: Unable to access an error message corresponding to your field name. <? //If we are an admin we can alter the user the information is added
Unable to access an error message corresponding to your field name.
<?
//If we are an admin we can alter the user the information is added for.
if($this->session->userdata('userType')=='admin'): ?>
<div class="form_row">
<div class="form_field">
<label for="time_for">User:</label>
</div>
<div class="form_field name_element" id="time-for-container">
<select name="time_for" id="time_for">
<?
foreach($users as $key => $u):
if($u->userId==$this->session->userdata('userId')):
?>
<option selected="selected" value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
else:
?>
<option value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
endif;
endforeach;
?>
</select>
<p id="time-for-error"></p>
</div>
</div>
<? else: ?>
<input type="hidden" id="time_for" name="time_for" value="<?=$this->session->userdata('userId')?>">
<? endif; ?>
<div class="form_row">
<div class="form_field">
<label for="hrs_spent">Hours and minutes spent:</label>
</div>
<div class="form_field name_element" id="mins-spent-container">
<input type="text" maxlength="6" name="hrs_spent" id="hrs_spent" value="" />
<span id="min-separator">:</span>
<input type="text" maxlength="6" name="mins_spent" id="mins_spent" value="" />
<p id="mins-spent-error"></p>
<p id="hrs-spent-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="date_worked">Date Worked:</label>
</div>
<div class="form_field name_element" id="date-picker-container">
<input type="text" name="date_worked" id="date_worked" />
<p id="date-worked-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="timer_description">Description:</label>
</div>
<div class="form_field name_element" id="description-container">
<textarea name="timer_description" id="timer_description" value=""></textarea>
<p id="timer-description-error"></p>
</div>
</div>
<input type="hidden" id="c_id" name="c_id" value="<?=$task->c_id ?>" />
<input type="hidden" id="p_id" name="p_id" value="<?=$task->p_id ?>" />
<input type="hidden" id="t_id" name="t_id" value="<?=$task->t_id ?>" />
<input type="hidden" name="login-folder" id="login-folder" value="<?=base_url()?>login" />
<input type="hidden" name="submit-folder" id="submit-folder" value="<?=base_url()?>times/submit_time" />
<div class="form_row">
<div id="message-box"></div>
<input type="button" name="submit" id="submit_time" class="button-styles button-three" value="Add time" />
</div>
</div>
但是,我已经使用set_message()为它创建了一条消息,在没有AJAX的情况下,它可以在另一个页面上正常工作
<?
//If we are an admin we can alter the user the information is added for.
if($this->session->userdata('userType')=='admin'): ?>
<div class="form_row">
<div class="form_field">
<label for="time_for">User:</label>
</div>
<div class="form_field name_element" id="time-for-container">
<select name="time_for" id="time_for">
<?
foreach($users as $key => $u):
if($u->userId==$this->session->userdata('userId')):
?>
<option selected="selected" value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
else:
?>
<option value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
endif;
endforeach;
?>
</select>
<p id="time-for-error"></p>
</div>
</div>
<? else: ?>
<input type="hidden" id="time_for" name="time_for" value="<?=$this->session->userdata('userId')?>">
<? endif; ?>
<div class="form_row">
<div class="form_field">
<label for="hrs_spent">Hours and minutes spent:</label>
</div>
<div class="form_field name_element" id="mins-spent-container">
<input type="text" maxlength="6" name="hrs_spent" id="hrs_spent" value="" />
<span id="min-separator">:</span>
<input type="text" maxlength="6" name="mins_spent" id="mins_spent" value="" />
<p id="mins-spent-error"></p>
<p id="hrs-spent-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="date_worked">Date Worked:</label>
</div>
<div class="form_field name_element" id="date-picker-container">
<input type="text" name="date_worked" id="date_worked" />
<p id="date-worked-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="timer_description">Description:</label>
</div>
<div class="form_field name_element" id="description-container">
<textarea name="timer_description" id="timer_description" value=""></textarea>
<p id="timer-description-error"></p>
</div>
</div>
<input type="hidden" id="c_id" name="c_id" value="<?=$task->c_id ?>" />
<input type="hidden" id="p_id" name="p_id" value="<?=$task->p_id ?>" />
<input type="hidden" id="t_id" name="t_id" value="<?=$task->t_id ?>" />
<input type="hidden" name="login-folder" id="login-folder" value="<?=base_url()?>login" />
<input type="hidden" name="submit-folder" id="submit-folder" value="<?=base_url()?>times/submit_time" />
<div class="form_row">
<div id="message-box"></div>
<input type="button" name="submit" id="submit_time" class="button-styles button-three" value="Add time" />
</div>
</div>
如果您对日志感兴趣,以下是输入无效日期时的相关输出:
ERROR - 2013-05-24 16:03:08 --> -----Valid date format called, 223013-05-15
ERROR - 2013-05-24 16:03:08 --> -----Should be okay = , 223013-05-15
ERROR - 2013-05-24 16:03:08 --> -----Valid date format = false, 223013-05-15
ERROR - 2013-05-24 16:06:00 --> -----Valid date format called, 2013-05-24
ERROR - 2013-05-24 16:06:00 --> -----Should be okay = , 2013-05-24
ERROR - 2013-05-24 16:06:00 --> -----Valid date format = true, 05,24,2013
<?
//If we are an admin we can alter the user the information is added for.
if($this->session->userdata('userType')=='admin'): ?>
<div class="form_row">
<div class="form_field">
<label for="time_for">User:</label>
</div>
<div class="form_field name_element" id="time-for-container">
<select name="time_for" id="time_for">
<?
foreach($users as $key => $u):
if($u->userId==$this->session->userdata('userId')):
?>
<option selected="selected" value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
else:
?>
<option value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
endif;
endforeach;
?>
</select>
<p id="time-for-error"></p>
</div>
</div>
<? else: ?>
<input type="hidden" id="time_for" name="time_for" value="<?=$this->session->userdata('userId')?>">
<? endif; ?>
<div class="form_row">
<div class="form_field">
<label for="hrs_spent">Hours and minutes spent:</label>
</div>
<div class="form_field name_element" id="mins-spent-container">
<input type="text" maxlength="6" name="hrs_spent" id="hrs_spent" value="" />
<span id="min-separator">:</span>
<input type="text" maxlength="6" name="mins_spent" id="mins_spent" value="" />
<p id="mins-spent-error"></p>
<p id="hrs-spent-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="date_worked">Date Worked:</label>
</div>
<div class="form_field name_element" id="date-picker-container">
<input type="text" name="date_worked" id="date_worked" />
<p id="date-worked-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="timer_description">Description:</label>
</div>
<div class="form_field name_element" id="description-container">
<textarea name="timer_description" id="timer_description" value=""></textarea>
<p id="timer-description-error"></p>
</div>
</div>
<input type="hidden" id="c_id" name="c_id" value="<?=$task->c_id ?>" />
<input type="hidden" id="p_id" name="p_id" value="<?=$task->p_id ?>" />
<input type="hidden" id="t_id" name="t_id" value="<?=$task->t_id ?>" />
<input type="hidden" name="login-folder" id="login-folder" value="<?=base_url()?>login" />
<input type="hidden" name="submit-folder" id="submit-folder" value="<?=base_url()?>times/submit_time" />
<div class="form_row">
<div id="message-box"></div>
<input type="button" name="submit" id="submit_time" class="button-styles button-three" value="Add time" />
</div>
</div>
并且具有有效日期:
ERROR - 2013-05-24 16:03:08 --> -----Valid date format called, 223013-05-15
ERROR - 2013-05-24 16:03:08 --> -----Should be okay = , 223013-05-15
ERROR - 2013-05-24 16:03:08 --> -----Valid date format = false, 223013-05-15
ERROR - 2013-05-24 16:06:00 --> -----Valid date format called, 2013-05-24
ERROR - 2013-05-24 16:06:00 --> -----Should be okay = , 2013-05-24
ERROR - 2013-05-24 16:06:00 --> -----Valid date format = true, 05,24,2013
<?
//If we are an admin we can alter the user the information is added for.
if($this->session->userdata('userType')=='admin'): ?>
<div class="form_row">
<div class="form_field">
<label for="time_for">User:</label>
</div>
<div class="form_field name_element" id="time-for-container">
<select name="time_for" id="time_for">
<?
foreach($users as $key => $u):
if($u->userId==$this->session->userdata('userId')):
?>
<option selected="selected" value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
else:
?>
<option value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
endif;
endforeach;
?>
</select>
<p id="time-for-error"></p>
</div>
</div>
<? else: ?>
<input type="hidden" id="time_for" name="time_for" value="<?=$this->session->userdata('userId')?>">
<? endif; ?>
<div class="form_row">
<div class="form_field">
<label for="hrs_spent">Hours and minutes spent:</label>
</div>
<div class="form_field name_element" id="mins-spent-container">
<input type="text" maxlength="6" name="hrs_spent" id="hrs_spent" value="" />
<span id="min-separator">:</span>
<input type="text" maxlength="6" name="mins_spent" id="mins_spent" value="" />
<p id="mins-spent-error"></p>
<p id="hrs-spent-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="date_worked">Date Worked:</label>
</div>
<div class="form_field name_element" id="date-picker-container">
<input type="text" name="date_worked" id="date_worked" />
<p id="date-worked-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="timer_description">Description:</label>
</div>
<div class="form_field name_element" id="description-container">
<textarea name="timer_description" id="timer_description" value=""></textarea>
<p id="timer-description-error"></p>
</div>
</div>
<input type="hidden" id="c_id" name="c_id" value="<?=$task->c_id ?>" />
<input type="hidden" id="p_id" name="p_id" value="<?=$task->p_id ?>" />
<input type="hidden" id="t_id" name="t_id" value="<?=$task->t_id ?>" />
<input type="hidden" name="login-folder" id="login-folder" value="<?=base_url()?>login" />
<input type="hidden" name="submit-folder" id="submit-folder" value="<?=base_url()?>times/submit_time" />
<div class="form_row">
<div id="message-box"></div>
<input type="button" name="submit" id="submit_time" class="button-styles button-three" value="Add time" />
</div>
</div>
以下是回调:
class MY_Controller extends CI_Controller
{
var $options;
public function __construct()
{
parent::__construct();
date_default_timezone_set('Europe/London');
$this->options->calendar = FALSE;
}
//Check date format aggainst mysql format, valid dates only, no 30-2-2010.
function _Valid_Date_Format($date)
{
log_message('error', '-----Valid date format called, '.$date);
if( empty($date) )
{
$this->form_validation->set_message('_Valid_Date_Format', 'This date is required.');
return FALSE;
}
else
{
log_message('error', '-----Should be okay = , '.$date);
}
$parsed = explode('-',$date);
if( checkdate($parsed[1],$parsed[2],$parsed[0]) )
{
log_message('error', '-----Valid date format = true, '.$parsed[1].','.$parsed[2].','.$parsed[0]);
return TRUE;
}
log_message('error', '-----Valid date format = false, '.$date );
$this->form_validation->set_message('_Valid_Date_Format', 'The Date entered is invalid.');
return FALSE;
}
}
<?
//If we are an admin we can alter the user the information is added for.
if($this->session->userdata('userType')=='admin'): ?>
<div class="form_row">
<div class="form_field">
<label for="time_for">User:</label>
</div>
<div class="form_field name_element" id="time-for-container">
<select name="time_for" id="time_for">
<?
foreach($users as $key => $u):
if($u->userId==$this->session->userdata('userId')):
?>
<option selected="selected" value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
else:
?>
<option value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
endif;
endforeach;
?>
</select>
<p id="time-for-error"></p>
</div>
</div>
<? else: ?>
<input type="hidden" id="time_for" name="time_for" value="<?=$this->session->userdata('userId')?>">
<? endif; ?>
<div class="form_row">
<div class="form_field">
<label for="hrs_spent">Hours and minutes spent:</label>
</div>
<div class="form_field name_element" id="mins-spent-container">
<input type="text" maxlength="6" name="hrs_spent" id="hrs_spent" value="" />
<span id="min-separator">:</span>
<input type="text" maxlength="6" name="mins_spent" id="mins_spent" value="" />
<p id="mins-spent-error"></p>
<p id="hrs-spent-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="date_worked">Date Worked:</label>
</div>
<div class="form_field name_element" id="date-picker-container">
<input type="text" name="date_worked" id="date_worked" />
<p id="date-worked-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="timer_description">Description:</label>
</div>
<div class="form_field name_element" id="description-container">
<textarea name="timer_description" id="timer_description" value=""></textarea>
<p id="timer-description-error"></p>
</div>
</div>
<input type="hidden" id="c_id" name="c_id" value="<?=$task->c_id ?>" />
<input type="hidden" id="p_id" name="p_id" value="<?=$task->p_id ?>" />
<input type="hidden" id="t_id" name="t_id" value="<?=$task->t_id ?>" />
<input type="hidden" name="login-folder" id="login-folder" value="<?=base_url()?>login" />
<input type="hidden" name="submit-folder" id="submit-folder" value="<?=base_url()?>times/submit_time" />
<div class="form_row">
<div id="message-box"></div>
<input type="button" name="submit" id="submit_time" class="button-styles button-three" value="Add time" />
</div>
</div>
以下是AJAX代码:
<?
//If we are an admin we can alter the user the information is added for.
if($this->session->userdata('userType')=='admin'): ?>
<div class="form_row">
<div class="form_field">
<label for="time_for">User:</label>
</div>
<div class="form_field name_element" id="time-for-container">
<select name="time_for" id="time_for">
<?
foreach($users as $key => $u):
if($u->userId==$this->session->userdata('userId')):
?>
<option selected="selected" value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
else:
?>
<option value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
endif;
endforeach;
?>
</select>
<p id="time-for-error"></p>
</div>
</div>
<? else: ?>
<input type="hidden" id="time_for" name="time_for" value="<?=$this->session->userdata('userId')?>">
<? endif; ?>
<div class="form_row">
<div class="form_field">
<label for="hrs_spent">Hours and minutes spent:</label>
</div>
<div class="form_field name_element" id="mins-spent-container">
<input type="text" maxlength="6" name="hrs_spent" id="hrs_spent" value="" />
<span id="min-separator">:</span>
<input type="text" maxlength="6" name="mins_spent" id="mins_spent" value="" />
<p id="mins-spent-error"></p>
<p id="hrs-spent-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="date_worked">Date Worked:</label>
</div>
<div class="form_field name_element" id="date-picker-container">
<input type="text" name="date_worked" id="date_worked" />
<p id="date-worked-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="timer_description">Description:</label>
</div>
<div class="form_field name_element" id="description-container">
<textarea name="timer_description" id="timer_description" value=""></textarea>
<p id="timer-description-error"></p>
</div>
</div>
<input type="hidden" id="c_id" name="c_id" value="<?=$task->c_id ?>" />
<input type="hidden" id="p_id" name="p_id" value="<?=$task->p_id ?>" />
<input type="hidden" id="t_id" name="t_id" value="<?=$task->t_id ?>" />
<input type="hidden" name="login-folder" id="login-folder" value="<?=base_url()?>login" />
<input type="hidden" name="submit-folder" id="submit-folder" value="<?=base_url()?>times/submit_time" />
<div class="form_row">
<div id="message-box"></div>
<input type="button" name="submit" id="submit_time" class="button-styles button-three" value="Add time" />
</div>
</div>
//提交时间功能
$(“#提交时间”)。单击(函数()
{
var cct=$.cookie('csrf_simple_cookie');//使用csrf函数克服ajax限制,请参见以下内容:
$.ajax({
url: folder,
type:"POST",
context: document.body,
data: {t_id:$('#t_id').val(),
time_for:$('#time_for').val(),
hrs_spent:$('#hrs_spent').val(),
mins_spent:$('#mins_spent').val(),
timer_description:$('#timer_description').val(),
date_worked:$('#date_worked').val(),
csrf_simple_collab:cct},
dataType: "json",
error: function(XMLHttpRequest,error)
{
if(error=='parsererror')//Not logged in.
{
window.location.replace(loginFolder)//redirect to login page
}
},
success: function(data)
{
if(data.success)
{
var message=$('#message-box').html('<span>Time data added successfully.</span>').hide();
message.fadeIn("slow");
javascript:location.reload(true);
}
else
{
if(data.validation)
{
//var message=$('#message-box').html("<span>Database error</span>");
var message=$('#message-box').html(data.error);
}
else
{
var message=$('#message-box').html(data.error);
$('#time-for-error').html(data.time_for);
$('#date-worked-error').html(data.date_worked);
$('#mins-spent-error').html(data.mins_spent);
$('#hrs-spent-error').html(data.hrs_spent);
$('#timer-description-error').html(data.timer_description);
}
}
}
});
return false;
<?
//If we are an admin we can alter the user the information is added for.
if($this->session->userdata('userType')=='admin'): ?>
<div class="form_row">
<div class="form_field">
<label for="time_for">User:</label>
</div>
<div class="form_field name_element" id="time-for-container">
<select name="time_for" id="time_for">
<?
foreach($users as $key => $u):
if($u->userId==$this->session->userdata('userId')):
?>
<option selected="selected" value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
else:
?>
<option value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
endif;
endforeach;
?>
</select>
<p id="time-for-error"></p>
</div>
</div>
<? else: ?>
<input type="hidden" id="time_for" name="time_for" value="<?=$this->session->userdata('userId')?>">
<? endif; ?>
<div class="form_row">
<div class="form_field">
<label for="hrs_spent">Hours and minutes spent:</label>
</div>
<div class="form_field name_element" id="mins-spent-container">
<input type="text" maxlength="6" name="hrs_spent" id="hrs_spent" value="" />
<span id="min-separator">:</span>
<input type="text" maxlength="6" name="mins_spent" id="mins_spent" value="" />
<p id="mins-spent-error"></p>
<p id="hrs-spent-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="date_worked">Date Worked:</label>
</div>
<div class="form_field name_element" id="date-picker-container">
<input type="text" name="date_worked" id="date_worked" />
<p id="date-worked-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="timer_description">Description:</label>
</div>
<div class="form_field name_element" id="description-container">
<textarea name="timer_description" id="timer_description" value=""></textarea>
<p id="timer-description-error"></p>
</div>
</div>
<input type="hidden" id="c_id" name="c_id" value="<?=$task->c_id ?>" />
<input type="hidden" id="p_id" name="p_id" value="<?=$task->p_id ?>" />
<input type="hidden" id="t_id" name="t_id" value="<?=$task->t_id ?>" />
<input type="hidden" name="login-folder" id="login-folder" value="<?=base_url()?>login" />
<input type="hidden" name="submit-folder" id="submit-folder" value="<?=base_url()?>times/submit_time" />
<div class="form_row">
<div id="message-box"></div>
<input type="button" name="submit" id="submit_time" class="button-styles button-three" value="Add time" />
</div>
</div>
}问题在于回调方法名称中使用的大小写。方法名称以及作为验证规则的所有后续引用都应为小写
<?
//If we are an admin we can alter the user the information is added for.
if($this->session->userdata('userType')=='admin'): ?>
<div class="form_row">
<div class="form_field">
<label for="time_for">User:</label>
</div>
<div class="form_field name_element" id="time-for-container">
<select name="time_for" id="time_for">
<?
foreach($users as $key => $u):
if($u->userId==$this->session->userdata('userId')):
?>
<option selected="selected" value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
else:
?>
<option value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
endif;
endforeach;
?>
</select>
<p id="time-for-error"></p>
</div>
</div>
<? else: ?>
<input type="hidden" id="time_for" name="time_for" value="<?=$this->session->userdata('userId')?>">
<? endif; ?>
<div class="form_row">
<div class="form_field">
<label for="hrs_spent">Hours and minutes spent:</label>
</div>
<div class="form_field name_element" id="mins-spent-container">
<input type="text" maxlength="6" name="hrs_spent" id="hrs_spent" value="" />
<span id="min-separator">:</span>
<input type="text" maxlength="6" name="mins_spent" id="mins_spent" value="" />
<p id="mins-spent-error"></p>
<p id="hrs-spent-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="date_worked">Date Worked:</label>
</div>
<div class="form_field name_element" id="date-picker-container">
<input type="text" name="date_worked" id="date_worked" />
<p id="date-worked-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="timer_description">Description:</label>
</div>
<div class="form_field name_element" id="description-container">
<textarea name="timer_description" id="timer_description" value=""></textarea>
<p id="timer-description-error"></p>
</div>
</div>
<input type="hidden" id="c_id" name="c_id" value="<?=$task->c_id ?>" />
<input type="hidden" id="p_id" name="p_id" value="<?=$task->p_id ?>" />
<input type="hidden" id="t_id" name="t_id" value="<?=$task->t_id ?>" />
<input type="hidden" name="login-folder" id="login-folder" value="<?=base_url()?>login" />
<input type="hidden" name="submit-folder" id="submit-folder" value="<?=base_url()?>times/submit_time" />
<div class="form_row">
<div id="message-box"></div>
<input type="button" name="submit" id="submit_time" class="button-styles button-three" value="Add time" />
</div>
</div>
要说明的是,这是表单验证库中导致消息的相关部分:
<?
//If we are an admin we can alter the user the information is added for.
if($this->session->userdata('userType')=='admin'): ?>
<div class="form_row">
<div class="form_field">
<label for="time_for">User:</label>
</div>
<div class="form_field name_element" id="time-for-container">
<select name="time_for" id="time_for">
<?
foreach($users as $key => $u):
if($u->userId==$this->session->userdata('userId')):
?>
<option selected="selected" value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
else:
?>
<option value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
endif;
endforeach;
?>
</select>
<p id="time-for-error"></p>
</div>
</div>
<? else: ?>
<input type="hidden" id="time_for" name="time_for" value="<?=$this->session->userdata('userId')?>">
<? endif; ?>
<div class="form_row">
<div class="form_field">
<label for="hrs_spent">Hours and minutes spent:</label>
</div>
<div class="form_field name_element" id="mins-spent-container">
<input type="text" maxlength="6" name="hrs_spent" id="hrs_spent" value="" />
<span id="min-separator">:</span>
<input type="text" maxlength="6" name="mins_spent" id="mins_spent" value="" />
<p id="mins-spent-error"></p>
<p id="hrs-spent-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="date_worked">Date Worked:</label>
</div>
<div class="form_field name_element" id="date-picker-container">
<input type="text" name="date_worked" id="date_worked" />
<p id="date-worked-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="timer_description">Description:</label>
</div>
<div class="form_field name_element" id="description-container">
<textarea name="timer_description" id="timer_description" value=""></textarea>
<p id="timer-description-error"></p>
</div>
</div>
<input type="hidden" id="c_id" name="c_id" value="<?=$task->c_id ?>" />
<input type="hidden" id="p_id" name="p_id" value="<?=$task->p_id ?>" />
<input type="hidden" id="t_id" name="t_id" value="<?=$task->t_id ?>" />
<input type="hidden" name="login-folder" id="login-folder" value="<?=base_url()?>login" />
<input type="hidden" name="submit-folder" id="submit-folder" value="<?=base_url()?>times/submit_time" />
<div class="form_row">
<div id="message-box"></div>
<input type="button" name="submit" id="submit_time" class="button-styles button-three" value="Add time" />
</div>
</div>
if ( ! isset($this->_error_messages[$rule]))
{
if (FALSE === ($line = $this->CI->lang->line($rule)))
{
$line = 'Unable to access an error message corresponding to your field name.';
}
}
else
{
$line = $this->_error_messages[$rule];
}
所有set_message()
都将规则命名为\u Valid\u Date\u Format
,这是$this->\u error\u messages
中存在的数组键
<?
//If we are an admin we can alter the user the information is added for.
if($this->session->userdata('userType')=='admin'): ?>
<div class="form_row">
<div class="form_field">
<label for="time_for">User:</label>
</div>
<div class="form_field name_element" id="time-for-container">
<select name="time_for" id="time_for">
<?
foreach($users as $key => $u):
if($u->userId==$this->session->userdata('userId')):
?>
<option selected="selected" value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
else:
?>
<option value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
endif;
endforeach;
?>
</select>
<p id="time-for-error"></p>
</div>
</div>
<? else: ?>
<input type="hidden" id="time_for" name="time_for" value="<?=$this->session->userdata('userId')?>">
<? endif; ?>
<div class="form_row">
<div class="form_field">
<label for="hrs_spent">Hours and minutes spent:</label>
</div>
<div class="form_field name_element" id="mins-spent-container">
<input type="text" maxlength="6" name="hrs_spent" id="hrs_spent" value="" />
<span id="min-separator">:</span>
<input type="text" maxlength="6" name="mins_spent" id="mins_spent" value="" />
<p id="mins-spent-error"></p>
<p id="hrs-spent-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="date_worked">Date Worked:</label>
</div>
<div class="form_field name_element" id="date-picker-container">
<input type="text" name="date_worked" id="date_worked" />
<p id="date-worked-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="timer_description">Description:</label>
</div>
<div class="form_field name_element" id="description-container">
<textarea name="timer_description" id="timer_description" value=""></textarea>
<p id="timer-description-error"></p>
</div>
</div>
<input type="hidden" id="c_id" name="c_id" value="<?=$task->c_id ?>" />
<input type="hidden" id="p_id" name="p_id" value="<?=$task->p_id ?>" />
<input type="hidden" id="t_id" name="t_id" value="<?=$task->t_id ?>" />
<input type="hidden" name="login-folder" id="login-folder" value="<?=base_url()?>login" />
<input type="hidden" name="submit-folder" id="submit-folder" value="<?=base_url()?>times/submit_time" />
<div class="form_row">
<div id="message-box"></div>
<input type="button" name="submit" id="submit_time" class="button-styles button-three" value="Add time" />
</div>
</div>
由于您的规则被定义为\u valid\u date\u format
,并且由于PHP在大多数情况下区分大小写,因此isset()
规则失败,并且您显然没有为其定义语言行,因此它将成为默认值
<?
//If we are an admin we can alter the user the information is added for.
if($this->session->userdata('userType')=='admin'): ?>
<div class="form_row">
<div class="form_field">
<label for="time_for">User:</label>
</div>
<div class="form_field name_element" id="time-for-container">
<select name="time_for" id="time_for">
<?
foreach($users as $key => $u):
if($u->userId==$this->session->userdata('userId')):
?>
<option selected="selected" value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
else:
?>
<option value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
endif;
endforeach;
?>
</select>
<p id="time-for-error"></p>
</div>
</div>
<? else: ?>
<input type="hidden" id="time_for" name="time_for" value="<?=$this->session->userdata('userId')?>">
<? endif; ?>
<div class="form_row">
<div class="form_field">
<label for="hrs_spent">Hours and minutes spent:</label>
</div>
<div class="form_field name_element" id="mins-spent-container">
<input type="text" maxlength="6" name="hrs_spent" id="hrs_spent" value="" />
<span id="min-separator">:</span>
<input type="text" maxlength="6" name="mins_spent" id="mins_spent" value="" />
<p id="mins-spent-error"></p>
<p id="hrs-spent-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="date_worked">Date Worked:</label>
</div>
<div class="form_field name_element" id="date-picker-container">
<input type="text" name="date_worked" id="date_worked" />
<p id="date-worked-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="timer_description">Description:</label>
</div>
<div class="form_field name_element" id="description-container">
<textarea name="timer_description" id="timer_description" value=""></textarea>
<p id="timer-description-error"></p>
</div>
</div>
<input type="hidden" id="c_id" name="c_id" value="<?=$task->c_id ?>" />
<input type="hidden" id="p_id" name="p_id" value="<?=$task->p_id ?>" />
<input type="hidden" id="t_id" name="t_id" value="<?=$task->t_id ?>" />
<input type="hidden" name="login-folder" id="login-folder" value="<?=base_url()?>login" />
<input type="hidden" name="submit-folder" id="submit-folder" value="<?=base_url()?>times/submit_time" />
<div class="form_row">
<div id="message-box"></div>
<input type="button" name="submit" id="submit_time" class="button-styles button-three" value="Add time" />
</div>
</div>
一般来说,在控制器方法中使用大写会导致问题。因此最好避免这样做。非常感谢Cryode,我将尝试改变情况,看看它是否有效。我不知道为什么这只会影响AJAX调用?这可能与AJAX调用无关;只是碰巧问题发生在一个基于ajax调用的控制器。你可能在其他地方做了不同的大小写,或者其他原因。就像我说的,保持大小写的小写和一致,这样的事情不应该发生。
<?
//If we are an admin we can alter the user the information is added for.
if($this->session->userdata('userType')=='admin'): ?>
<div class="form_row">
<div class="form_field">
<label for="time_for">User:</label>
</div>
<div class="form_field name_element" id="time-for-container">
<select name="time_for" id="time_for">
<?
foreach($users as $key => $u):
if($u->userId==$this->session->userdata('userId')):
?>
<option selected="selected" value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
else:
?>
<option value="<?=$u->userId?>"><?=$u->userName?></option> <?='\n'?>
<?
endif;
endforeach;
?>
</select>
<p id="time-for-error"></p>
</div>
</div>
<? else: ?>
<input type="hidden" id="time_for" name="time_for" value="<?=$this->session->userdata('userId')?>">
<? endif; ?>
<div class="form_row">
<div class="form_field">
<label for="hrs_spent">Hours and minutes spent:</label>
</div>
<div class="form_field name_element" id="mins-spent-container">
<input type="text" maxlength="6" name="hrs_spent" id="hrs_spent" value="" />
<span id="min-separator">:</span>
<input type="text" maxlength="6" name="mins_spent" id="mins_spent" value="" />
<p id="mins-spent-error"></p>
<p id="hrs-spent-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="date_worked">Date Worked:</label>
</div>
<div class="form_field name_element" id="date-picker-container">
<input type="text" name="date_worked" id="date_worked" />
<p id="date-worked-error"></p>
</div>
</div>
<div class="form_row">
<div class="form_field">
<label for="timer_description">Description:</label>
</div>
<div class="form_field name_element" id="description-container">
<textarea name="timer_description" id="timer_description" value=""></textarea>
<p id="timer-description-error"></p>
</div>
</div>
<input type="hidden" id="c_id" name="c_id" value="<?=$task->c_id ?>" />
<input type="hidden" id="p_id" name="p_id" value="<?=$task->p_id ?>" />
<input type="hidden" id="t_id" name="t_id" value="<?=$task->t_id ?>" />
<input type="hidden" name="login-folder" id="login-folder" value="<?=base_url()?>login" />
<input type="hidden" name="submit-folder" id="submit-folder" value="<?=base_url()?>times/submit_time" />
<div class="form_row">
<div id="message-box"></div>
<input type="button" name="submit" id="submit_time" class="button-styles button-three" value="Add time" />
</div>
</div>