こんにちは私はこのような多次元フォームを検証する必要があります
<input type="text" class="input-xlarge span5 req" id="contact_first_name" name="hotel[<?=$id?>][contact_first_name]" value="<?= set_value('hotel[contact_first_name]') ?>">
<input type="text" class="input-xlarge span5 req" id="contact_last_name" name="hotel[<?=$id?>][contact_last_name]" value="<?= set_value('hotel[contact_last_name]') ?>">
入力はjqueryを介して動的に追加されるため、最終的な配列の次元はわかりません。
サーバー側にはCodeigniterForm_Validationを使用し、クライアント側にはJQueryValidatorを使用してJQueryを使用しています。
これは私のform_validationルールです
$config['add_hotel'] = array(
array(
'field' => 'hotel[][hotel_name]',
'label' => 'Hotel Name',
'rules' => 'required'
),
array(
'field' => 'hotel[][contact_first_name]',
'label' => 'First Name',
'rules' => 'trim|required'
),
array(
'field' => 'hotel[][contact_last_name]',
'label' => 'Last Name',
'rules' => 'trim|required'
),
これがjqueryバリデーターを介して行っている方法です
$("#add_hotel").validate({
rules: {
"hotel[][hotel_name]": "required"
/* errorElement: "div",
wrapper: "div"*/
},
messages: {
"hotel[][hotel_name]": "Please enter the Association Name"
},
submitHandler: function(form) {
form.submit();
}
Hotel[]
各入力を独自のIDで検証する方法がわからない、または入力をより簡単に定義する別の方法があるかもしれません。