0
votes

I have two drop down lists in my form and after input data to all fields and click submit button, second drop down gives an form error to input data to that field. I'm getting data to those drop downs from separate two tables in database. Table names are "borrowers" and "books" from database.

public function form_validation2()
{
    //echo 'OK';
    $this->load->library('form_validation');
    $this->form_validation->set_rules("borrower_name", "Borrower Name", 'required');
    $this->form_validation->set_rules("borrowed_book", "Borrowed Book", 'required');
    $this->form_validation->set_rules("borrowed_date", "Borrowed Date", 'required');
    $this->form_validation->set_rules("lending_date", "Lending Date", 'required');

    if($this->form_validation->run())
    {
        //true
        $this->load->model("main_model");
        $data = array(
            "borrower_name"   =>$this->input->post("borrower_name"),
            "borrowed_book"   =>$this->input->post("borrowed_book"),
            "borrowed_date"   =>$this->input->post("borrowed_date"),
            "lending_date"    =>$this->input->post("lending_date")

        );

        if($this->input->post("insert"))
        {
            $this->main_model->insert_borrowed($data);
            redirect(base_url() . "main/inserted2");
        }
    }
    else
    {
        //false
        $this->borrower_page();
    }
}

 public function borrower_page(){
    // $this->load->view("borrower_page");

    $this->load->helper('url');

    if($this->input->post("btn_for_books_page")){
        redirect(base_url().'main/index');
    }

    $this->load->model("main_model");
    $data["fetch_data2"] = $this->main_model->fetch_data2();

    $data['borrower_name'] = $this->main_model->get_detail_in_dropdown();
    $data['book_name'] = $this->main_model->dropdown2();

    $this->load->view("borrower_page", $data);

}

From view

 <div class="form-group">
            <label>Borrower Name</label>

            <select class="form-control" name="borrower_name">
                <?php

                foreach($borrower_name as $row)
                {
                    echo '<option value="'.$row->borrower_name.'">'.$row->borrower_name.'</option>';
                }
                ?>
            </select>


            <!--   <input type="text" name="borrower_name" class="form-control">  -->
            <span class="text-danger"><?php echo form_error("borrower_name"); ?></span>
        </div>

        <div class="form-group">
            <label>Borrowed Book</label>

            <select class="form-control" name="book_name">
                <?php

                foreach($book_name as $row1)
                {
                    echo '<option value="'.$row1->book_name.'">'.$row1->book_name.'</option>';
                }
                ?>
            </select>

            <!-- <input type="text" name="borrowed_book" class="form-control"> -->
            <span class="text-danger"><?php echo form_error("borrowed_book"); ?></span>
        </div>
1

1 Answers

4
votes

You have to name your form inputs correct. Try changing:

<select class="form-control" name="book_name">

To:

<select class="form-control" name="borrowed_book">

Change it in your view since you are fetching "borrowed_book" in your controller.