codeinighter где field = данные из формы - PullRequest
0 голосов
/ 21 декабря 2011

Я пытаюсь найти поставщиков по почтовому индексу:

Код модели:

function get_suppliers(){
    $this->db->from('suppliers');
    $this->db->where('postcode', $data);
    $this->db->select('name,type,site,contact,number');

    $q = $this->db->get();

    if($q->num_rows() > 0) {
        foreach($q->result() as $row) {
            $data[] = $row;
        }
        return $data;
    }
}

Код контроллера:

public function index()
{
$this->load->library('form_validation');

    $this->form_validation->set_rules('postcode','Postcode', 'required|numeric|exact_length[4]');
    $data = array(
        'postcode' => $this->input->post('postcode')
                );
    if($this->form_validation->run() == FALSE)
    {
        ## reload page ##
        $this->load->view('welcome_message');
    }
    else
    {
    $this->load->model('site_model');

    $this->site_model->add_record($data);   

    echo("postcode entered");   

    $data['rows'] = $this->site_model->get_suppliers($data);
    print_r($data);
    }
}

Очевидно, что игнорировать принтеры и эхо, которые я только привожу, чтобы увидеть, что происходит, я почти уверен, что мне нужно просто изменить $ data в модели на что-то, что просто не уверен, что (пробовал кучу вещей)

Ответы [ 2 ]

0 голосов
/ 21 декабря 2011

Модель:

function get_suppliers($postcode = '*') // <-- Capture the postcode
{
    $this->db->from('suppliers');
    $this->db->where('postcode', $postcode); // <-- pass it in here
    $this->db->select('name,type,site,contact,number');

    $q = $this->db->get();

    if($q->num_rows() > 0)
    {
        foreach($q->result() as $row)
        {
            $data[] = $row;
        }
        return $data;
    }
}

Контроллер:

public function index()
{
    $this->load->library('form_validation');

    $this->form_validation->set_rules('postcode','Postcode', 'required|numeric|exact_length[4]');

    $data = array(
        'postcode' => $this->input->post('postcode')
    );

    if($this->form_validation->run() == FALSE)
    {
        ## reload page ##
        $this->load->view('welcome_message');
    }
    else
    {
        $this->load->model('site_model');

        $this->site_model->add_record($data);   

        $data['rows'] = $this->site_model->get_suppliers( $data['postcode'] ); // <-- pass the postcode

        echo("postcode entered: " . $data['postcode'] . "<pre>");
        print_r($data);
    }
}
0 голосов
/ 21 декабря 2011

В вашей модели:

function get_suppliers($data = ''){

, т.е.: вы не включили $data в качестве аргумента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...