6

我在一个长页面的底部有一个表单,如果用户填写了表单但它没有验证页面是否以典型的 codeigniter 方式重新加载:

$this->load->view('template',$data);

但是,由于表单位于页面底部,因此我需要将页面加载到那里,就像使用 HTML 锚点一样。有谁知道如何在codeigniter中做到这一点?

我无法使用代码点火器

redirect();

函数,因为它丢失了对象并且验证错误消失了。我用过的其他框架,比如 Yii,你可以调用重定向函数,比如:

$this->redirect();

这解决了问题,因为您保留了对象。我试过使用:

$this->index()

在控制器中作为重定向工作正常,但验证错误在另一种方法中,即当前页面的加载位置:

$this->item($labs)

但是当我使用它时,它会陷入循环

有任何想法吗?我在网上看到很多这个问题,但没有明确的答案。我正在研究使用codeigniter“闪存数据”,但认为这有点矫枉过正。

干杯。

4

2 回答 2

5

我不能亲自担保这一点,但根据这个线程,如果你将锚附加到表单的action,它会起作用。

CodeIgniter 助手:

<?php echo form_open('controller/function#anchor'); ?>

或原版 HTML:

<form method='post' action='controller/function#anchor'>

如果您愿意使用 Javascript,则可以轻松检测$validation_failed变量并适当滚动。或者,更好的是,使用 AJAX。

另一种选择是将表单放在页面顶部附近?

于 2012-09-21T19:31:25.027 回答
0
于 2012-09-21T19:31:57.830 回答