Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter 2-My_控制器中的回调函数_Php_Codeigniter_Controller_Codeigniter 2 - Fatal编程技术网

Php Codeigniter 2-My_控制器中的回调函数

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

我所有的回调函数都在我的_控制器中,这样它们就不会在整个网站中重复。这很好,但由于某种原因,当我使用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 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>