0

以下のようなテキストボックスのグループがあります

<input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/>
<input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/>
<input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/>
<input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/>
<input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/>

次に、以下のような検証ルールを設定すると

array(
'field'   => 'sizes[]',
'label'   => 'SIZES',
'rules'   => 'required|xss_clean'
),

次に、codeigniter ですべての入力ボックスの値をチェックします。すべてのテキスト ボックスが埋まっている場合、codeigniter は true を返します。しかし、私はそれらの誰かがいっぱいになってからtrueを返すかどうかを取得したい

どうやってやるの??

ありがとう

4

1 に答える 1

1

コントローラーでカスタム検証関数を作成し、入力に独自のチェックを実装できます。まず、コントローラーに新しい関数を追加します。

function _is_valid($str, $field_name)
{
    //First we see if the field name we are checking has multiple values
    if (!is_array($this->input->post($field_name))) 
        return false;

    //Let's get the posted values and see if any of them has a value:
    foreach ($this->input->post($field_name) as $value)
        if (strlen($value)) return true;

    //If we get here that means there was no value posted:
    return false;   
}

次に、フィールドのルールを変更します。

'rules'   => 'required|xss_clean' 

に:

'rules'   => 'callback__is_valid[sizes]|xss_clean'

カスタム検証関数の詳細については、次を参照してください。

[http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#callbacks][1]

于 2012-12-27T11:05:10.390 に答える