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
}

では、コールバック関数でこれら 2 つのフィールド値にアクセスするにはどうすればよいでしょうか? 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 に答える