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');
}
}

希望我的问题很清楚。

4

1 回答 1

4

您可以为此使用 set_value 方法。是文档。

<input type="input" name="id_ficha" value="<?php echo set_value('id_ficha',$teste1['id_ficha']);?>" />

第二个参数是默认值,第一个参数是字段名。当验证失败时,第一个参数将查找值,如果找到则显示,如果没有则采用默认值。
此外,当验证失败时,您应该将所有行仅加载视图不起作用

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);
于 2013-01-21T14:00:49.507 回答