私のコントローラーの1つに、次のコードがあります。ここでは、別のモデルのビュー(フォーム付き)をロードし、そこにデータを渡します。
$data['teste1']=$this->fichas_model->set_fichas();
$data['teste'] = $this->fichas_model->get_distribuidor();
$this->load->view('templates/header');
$this->load->view('aquitex/criar_ficha');
上記のビューで、次のように渡されたデータを提示します。
<input type="input" name="id_ficha" value="<?php echo $teste1['id_ficha'];?>" />
<input type="input" name="nome_empresa" value="<?php echo $teste['nome_empresa'];?>" />
<input type="input" name="morada" value="<?php echo $teste['morada'];?>" />
問題なく動作しています。問題は、このフォームにある検証フィールドにあります。いくつかの検証が呼び出された場合 (たとえば、いくつかのフィールドを空白のままにしておくため)、$data['teste1'] e $data['teste'] 配列を介して渡されたデータが失われ、入力に HTML コードが書き込まれます。
ビューが処理されるコントローラーのコードは次のとおりです。
public function criar_ficha()
{
$this->load->helper('form');
$this->load->library('form_validation');
$this->form_validation->set_rules('nome_produto', 'Nome do Produto', 'required');
$this->form_validation->set_rules('morada', 'Morada', 'required');
if ($this->form_validation->run() === FALSE)
{
$this->load->view('aquitex/criar_ficha', $data);
}
else
{
$this->aquitex_model->set_ficha();
$this->load->view('aquitex/success');
}
}
私の質問が明確だったことを願っています。