在这种情况下,我无法让表单验证库将表单错误发送回我的表单。
我有一个处理上传图像的控制器,名为addImage.php。该控制器仅处理do_upload处理。我有一个名为uploadimage.php的视图,其中包含上传表单并提交到/ addImage / do_upload。
上传表单使用
代码点火器中的模板加载到我网站的首页<?php $this->load->view('uploadimage'); ?>
首页控制器包含在home.php中
现在验证失败后,我只是重定向到主页,显然没有加载错误(在addImage.php中)
if($this->_submit_validate() == FALSE)
{
redirect('/', 'location');
return;
}
如何在保留这些错误的同时重定向到我的template_front.php。我可以以某种方式从uploadimage.php控制器调用我的home.php控制器来执行此操作吗?我迷惑自己试图解释它!如果这完全不清楚,请告诉我,我会尽力澄清。
答案 0 :(得分:2)
每the Documentation,您只需在失败时重新加载视图文件。
if ($this->form_validation->run() == FALSE)
{
$this->load->view('myform');
}
else
{
$this->load->view('formsuccess');
}
重定向生成新的服务器请求,刷新验证错误信息。
答案 1 :(得分:0)
验证失败时,您应该重新加载表单。可能是您想要添加一个按钮来隐藏上传。 在视图中,您应该添加一些标记来显示错误(有很多关于验证帮助的信息),例如:
<?=form_open_multipart("/personas/savefoto", array('class' => "form3") )?>
<h3><?=$heading?></h3>
<div class="center">
<?php echo '<strong>'.mb_convert_case($record['nombre'].' '.$record['apellido1'].' '.$record['apellido2'], MB_CASE_TITLE).'</strong><br/>';
if( file_exists("fotos/e".MATRIZ."/b".$record['id'].".jpg")){
?>
<img class="foto" src="<?php echo base_url()."fotos/e".MATRIZ."/b".$record['id']?>.jpg"/>
<br/><br/>
<?php
} ?>
</div>
<div class="form-row">
<label for="imagen">Nueva imagen <br/>(jpg, gif o png)</label>
<input type="file" name="userfile" size="20" />
<br/>
<?php if(isset($error_image)) echo '<p class="error">'.$error_image.'</p>'; ?>
</div>
<div class="form-row center">
<input type="submit" value="Aceptar" />
<input type="button" value="Cancelar" onclick="location.href='/system.php/personas/admin';">
</div>
<?=form_close();?>
查找if(isset($ error_image))
答案 2 :(得分:0)
您可以使用validation_errors()函数并将它们设置为会话变量
$this->session->set_userdata(array('form_errors', validation_errors()));
然后在您的重定向页面上访问它们。
echo $this->session->userdata('form_errors');
$this->session->unset_userdata('form_errors'); // prevent them from being stored past use