моя проверка формы не работает должным образом для поля выбора в codeigniter

Анкит Сутар

Я работаю над проверкой формы в codeigniter, я создаю правила проверки для своей формы в My Controller. У меня есть два окна выбора, и я хочу проверить оба, теперь проблема в том, что в поле выбора отображается одно и то же сообщение об ошибке, которое я хочу отображать для каждого поля выбора.

Основная проблема заключается в том, что сообщение об ошибке будет отображать одну и ту же ошибку города для обоих окон выбора. Я хочу, чтобы разные сообщения об ошибке для разных окон выбора.

и еще один вопрос: когда я получаю сообщение об ошибке проверки для любого поля, вся форма становится пустой. Я хочу показать это, когда я получу ошибку проверки для любого поля, другие данные поля будут там.

Это мой контроллер:

public function addEmployeeController()
{

    $this->load->library('form_validation');

    $abcd = $this->input->post('city_id');
    $abc = $this->input->post('desi_id');


    $this->form_validation->set_rules('emp_name', 'Name', 'trim|required');
    $this->form_validation->set_rules('emp_jdate', 'Joining Date', 'trim|required');
    $this->form_validation->set_rules('emp_addr', 'Address', 'trim|required');
    $this->form_validation->set_rules('emp_sal', 'Salary', 'trim|required');
    $this->form_validation->set_rules('emp_descr', 'Description', 'trim|required');
    $this->form_validation->set_rules('emp_mobile', 'Mobile Number', 'trim|required|min_length[10]');
    $this->form_validation->set_rules('city_id', 'City', 'trim|required|callback_select_validate');
    $this->form_validation->set_rules('desi_id', 'Designation', 'trim|required|callback_select_validate');



    if($this->form_validation->run() == FALSE)
    {
        $this->index();         
    }

    else
    {           


        if($query = $this->Emp_model->addEmployeeModel('$data'))
        {
            $data['main_content'] = 'signup_successful';
            $this->load->view('emp_view', $data);
        }
        else
        {
            $this->load->view('emp_view');          
        }
    }

}

public function select_validate($abcd)
{
        // 'none' is the first option that is default "-------Choose City-------"
        if($abcd == "none")
        {
                $this->form_validation->set_message('select_validate', 'Please Select Your City.');

                return false;
        } 
        else
            {
                // User picked something.
                return true;
            }
}

public function select_validate1($abc)
{
        // 'none' is the first option that is default "-------Choose City-------"
        if($abc = "none")
        {
                $this->form_validation->set_message('select_validate', 'Please Select Your Designation.');
                return false;
        } 
        else
            {
                // User picked something.
                return true;
            }
}

И в представлении у меня есть поле выбора, подобное этому. когда я отправляю форму, не выбирая поле выбора, отображается сообщение об ошибке «Пожалуйста, выберите свой город» для обоих полей выбора. Я хочу показать другое сообщение.

<p>
    <lable for="desi_id">Designation:</lable><?php echo form_error('desi_id'); ?>

        <select name="desi_id">
        <option selected="selected" value="none">Select Post</option>   

        <?php foreach ($records as $row) { ?>

        <option value="<?php echo $row->desi_id ?>"><?php echo $row->post_name ?></option>
        <?php } ?>


        </select>

    </p>

Город: выберите город city_id?> "> City_name?>

Дэвид Кодер

Здравствуйте, ваше другое сообщение, которое вам нужно определить:

Для сообщения:

    $this->form_validation->set_rules('emp_name', 'Name', 'trim|required');
    $this->form_validation->set_rules('emp_jdate', 'Joining Date', 'trim|required');
    $this->form_validation->set_rules('emp_addr', 'Address', 'trim|required');
    $this->form_validation->set_rules('emp_sal', 'Salary', 'trim|required');
    $this->form_validation->set_rules('emp_descr', 'Description', 'trim|required');
    $this->form_validation->set_rules('emp_mobile', 'Mobile Number', 'trim|required|min_length[10]');
    $this->form_validation->set_rules('city_id', 'City', 'trim|required|callback_select_validate');
    $this->form_validation->set_rules('desi_id', 'Designation', 'trim|required|callback_select_validate1');

    $this->form_validation->set_message('city_id', 'Your message');
    $this->form_validation->set_message('desi_id', 'Your other message');

Для пустых других полей: вы должны использовать set_value ('field_name') во всех полях.

<input type="text" name="city" value="<?php echo set_value('city'); ?>" />

Ваша небольшая ошибка: callback_select_validate и callback_select_validate1

$this->form_validation->set_rules('city_id', 'City', 'trim|required|callback_select_validate');
$this->form_validation->set_rules('desi_id', 'Designation', 'trim|required|callback_select_validate1');

Надеюсь, что это поможет вам :)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사