1
コールバック検証機能を使用してビューでフォーム検証エラーを表示しようとすると、問題が発生します。ユーザーが車両オプションで「はい」を選択した場合、フォームはその車両オプションフィールドに関連する他の必須フィールドをチェックする必要があります。私は、フォームを出力し、バックフォームからデータを取得する単純な関数持って私のコントローラでコールバック検証
:configフォルダに
function new_customer_record()
{
if ($this->form_validation->run() == FALSE)
{
// data array has values to be passed to the customer_form_view
$this->load->view('customer_form_view',$data);
}else{
//get data from the post method and save it to the database
}
}
を、私は満たされたアレイを有するfrom_validation.phpと呼ばれるファイルを持っています検証ルールやコールバック関数下図のように:ビューで
$config = array (
'employee/new_record' => array(
array (
'field' => 'first_name',
'label' => 'First Name',
'rules' => 'required',
),
array (
'field' => 'vehicleOwn',
'label' => 'Own a vehicle',
'rules' => 'required|callback_checkVehicleInfo',
),
),
);
function checkVehicleInfo($str){
if ($str == "Yes"){
$config = array ('employee/new_record' => array(
array (
'field' => 'vehicle_model',
'label' => 'Vehicle Model',
'rules' => 'required'
),
array (
'field' => 'vehicle_rego',
'label' => 'Vehicle Rego',
'rules' => 'required'
),
array (
'field' => 'vehicle_type',
'label' => 'Vehicle Type',
'rules' => 'required'
),
),
);
$this->form_validation->set_message('checkVehicleInfo','Please enter your vehicle information');
return FALSE;
}else{
return TRUE;
}
}
、私は検証ルールを「必要」しているフィールドごとに次のような何かを持っている - 他のフィールドは、中(車両の必須項目を除き、正常に動作コールバック関数):
<?php $vehicle_model = @field($this->validation->vehicle_model, $customer- >vehicle_model); ?>
<tr>
<td><label>Vehicle Model</label></td>
<td><input name="vehicle_model" type="text" value="<?php echo ($edit=== true)? $vehicle_model :set_value('vehicle_model'); ?>" size="20" maxlength="20">
<?php echo form_error('vehicle_model'); ?></td>
</tr>
エラーメッセージは表示されませんが、検証は機能していません。
new_customer_record()関数の直後にcheckVehicleInfo($ str)関数を追加しましたが、機能しませんでした。 set_value()も機能しません。 – Adam
vehicleOwnルールから 'required'を削除します。 – toopay