我在名为form_validation.php
的单独文件中有几个带有多个验证规则的表单。其中一个是一个编辑表单,其中包含从会话中接收用户/usuario/painel/editar
的网址id
,填充表单而无需通过id
传递GET
,出于安全考虑。
问题在于,当我提交表单时,action
是不同的,当有任何错误时,网址会更改为action
,在呈现表单时会显示多个错误,因为视图不同而且没有id
可以接收。
<form action="/auto/usuario/edit/<?php echo $id_usuario; ?>" method="POST" id="editar_formulario_fisica_1" enctype="multipart/form-data">...</form>
例如:localhost:8000/auto/usuario/edit/8
有没有办法刷新同一页面和相同的表单,并显示错误?或者也许是为了防止在出现错误时更改URL?
答案 0 :(得分:0)
将id放在隐藏的表单字段中
echo form_hidden('userid',$id_usuario);
然后获取控制器或模型中的用户ID
$userid = $this->input->post( 'userid') ;
编辑======
是的,URL现在可以是相同的,因为您没有将用户ID添加到它的末尾。您不需要,因为用户ID是在隐藏的表单字段中传递的。
表单本身位于视图文件中。要显示表单,您首先获取用户ID,然后调用/加载表单视图文件。以类似的方式,如果表单验证失败,那么您将再次显示表单视图文件。这一切都发生在您的控制器中。此外,如果您使用codeigniter表单帮助程序和表单验证,它会更容易显示错误消息等。