簡體   English   中英

Codeigniter中的form_validation錯誤

[英]Error with form_validation in Codeigniter

我在codeigniter中使用以下代碼,並出現錯誤,因為form_validation沒有運行。請幫助我解決問題。控制器中的代碼是:

    public function event_desc()
{       
    $this->form_validation->set_error_delimiters('<div class="error">', '</div>');
    $this->form_validation->set_rules('event_title','Event Title','required|max_length[40]');
    $this->form_validation->set_rules('event_desc','Event Description','required');
    $this->form_validation->set_rules('event_cat','Event Category','required|callback_is_default');
    $this->form_validation->set_rules('event_date','Event Date','required|date');
    $this->form_validation->set_rules('event_venue','Event Venue','required||max_length[25]');
    $this->form_validation->set_rules('event_charges','Event Charges','required');
    if($this->form_validation->run()== FALSE)
    {       
    echo "error";
     $this->is_logged_in();
    }
    else
    {
        echo "success";
        $userId = $this->ion_auth->get_user_id();

            $data=array(
                'cat_id '=> $this->input->post('event_cat'),
                'user_id' => $userId,
                'event_title' => $this->input->post('event_title'),
                'event_desc' => $this->input->post('event_desc'),
                'event_date' => $this->input->post('event_date'),
                'event_venue' => $this->input->post('event_venue'),
                'event_charges' => $this->input->post('event_charges'),
                );
            $this->load->model('event_model');  
            $this->event_model->add_event_record($data);
            $this->index();


    }

}
public function _is_default($str)
{
if ($str != 'yes' && $str != 'no')
{
    $this->form_validation->set_message('_check_select_yes_or_no', 'Please select yes or no for the %s field');
    return FALSE;
}
else
{
    return TRUE;
}
}

當我插入數據並提交時,如果form_validation()運行為false,則顯示“錯誤”,因為我回顯了“錯誤”。 我在View中的代碼是:

 <?php echo form_open('profile/event_desc'); ?>
        <div class="event_wrapper">
            <div class="label_content">
                <div class="event_details">Event Title</div>
                 <input type="text" name="event_title" id="event_title" />
                 <?php echo form_error('event_title','<div class="error_event">','</div>');?>
            </div><!-- end of label_content-->
            <div class="label_content">
                <div class="event_details">Event Description</div>
                 <textarea name="event_desc" id="event_desc"></textarea>
                 <?php echo form_error('event_desc','<div class="error_event">','</div>')?>
            </div><!-- end of label_content-->
            <div class="label_content">
           <div class="event_details"> Event Category</div>
              <select name="event_cat"  id="eventcat">
                <option value="select">_Select one_</option>
                <option value="1">Informational Technology</option>
                <option value="2">Education</option>
                <option value="3">Entertainment</option>
                <option value="4">Sports</option>
                <option value="5">Seminars</option>
                <option value="6">Research</option>
                <option value="7">Science</option>
                </select>
                <?php echo form_error('event_cat','<div class="error_event">','</div>')?>
            </div><!-- end of label_content-->
            <div class="label_content">
           <div class="event_details">  Event Date</div>
             <input type="datetime" name="event_date" value="" id="event_title"/>
              <?php echo form_error('event_date','<div class="error_event">','</div>')?>
            </div>
             <div class="label_content">
           <div class="event_details">  Event Venue</div>
             <input type="datetime" name="event_venue" value="" id="event_title"/>
              <?php echo form_error('event_venue','<div class="error_event">','</div>')?>
            </div>
              <div class="label_content">
           <div class="event_details">  Event Charges</div>
             <input type="datetime" name="event_charges" value="" id="event_title"/>
              <?php echo form_error('event_charges','<div class="error_event">','</div>')?>
            </div>
             <div class="label_content">
                <div class="submit_gap">
                    <button type="submit" class="signin">Upload</button>
                </div>

請幫助我找出錯誤。

根據codeigniter文檔-嘗試將回調從_is_default更改為is_default。

$this->form_validation->set_rules('username', 'Username', 'callback_username_check');


public function username_check($str){ /*code*/ }

我查看了您的代碼,發現了以下問題。

  1. 此規則是錯誤的,它包含兩個| 而不是一個。 所以正確的規則是

     $this->form_validation->set_rules('event_venue','Event Venue','required|max_length[25]'); 
  2. 您的回調永遠不會是正確的,因為您不會從選擇菜單中返回“是”或“否”,因此正確的回調應該是。

     public function is_default($str) { if ($str == 'select') { $this->form_validation->set_message('is_default', 'Please select yes or no for the %s field'); return FALSE; } else { return TRUE; } } 

將此部分替換為您的代碼,它將起作用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM