0

在我看来,我得到了一些文本输入:

<label for="car-n">Car Name:</label><input type="text" name="cars[]" id="car-n"/>
<label for="car-t">Car Type:</label><input type="text" name="cars[]" id="car-t"/>

现在,我想使用 CodeIgniter 的验证回调函数来验证它们,但似乎我无法获取它们的值:

$this->form_validation->set_rules('cars[]', 'Cars', 'required|xss_clean|callback__validate_cars');

...和功能:

function _validate_cars($input)
{
     echo $input; //returns no field value;
     echo $this->form_validation->set_value('cars[]'); //not works
}

那么,我应该如何在我的回调函数中访问这两个字段值呢?我还没有在 CodeIgniters 用户指南中看到有关此案例的任何信息。

4

1 回答 1

1

好的,看看下面的控制器:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Temp extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
        $this->load->library(array('form_validation'));
    }

    public function index()
    {
        $this->show_form();
    }



    public function validate(){
        $this->form_validation->set_rules('cars[]', 'Cars', 'required|callback_validate_cars');
        if ($this->form_validation->run() == FALSE)
        {
            $this->show_form();

        }
        else "All is ok";
    }

    public function validate_cars($string)
    {
        print_r($this->input->post('cars'));
        return false;
    }

    public function show_form()
    {
        echo '<form action="'. base_url('temp/validate').'" method="post">';
        echo 'Car 1: <input name="cars[]" type="text">';
        echo ' Car 2: <input name="cars[]" type="text">';
        echo '<input type="submit" value="Go!">';
        echo '</form';
    }
}

您可以使用 post 值作为$this->input->post('cars');

于 2012-10-23T15:12:22.610 回答