在我的一个控制器中,我有以下代码,我在其中加载不同模型的视图(带有表单)并将一些数据传递到那里。
$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');
}
}
希望我的问题很明确。
答案 0 :(得分:4)
您可以使用set_value方法。 Here是文档。
<input type="input" name="id_ficha" value="<?php echo set_value('id_ficha',$teste1['id_ficha']);?>" />
第二个参数是默认值,第一个参数是字段名称。当validaton失败时,如果找到则第一个参数将查找值,否则显示为默认值 此外,当验证失败时,您应该将所有行仅加载视图不起作用
if ($this->form_validation->run() === FALSE)
{
$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');
}
另请注意,您未将$data
传递给视图。它应该是
$this->load->view('aquitex/criar_ficha',$data);