我正在使用CodeIgniter PHP框架。我有一个简单的表单,它有一个$ editcode隐藏变量,可以在表单提交时发送。表单将数据提交给表单处理函数,然后再次使用表单重新显示视图,但$ editcode $变量更改为新值。
问题在于,无论我做什么,即使在提交表单并使用新的$ editcode变量重新绘制视图之后,$ editcode的值仍保持与原始值相同。
从我的视图中摘录,显示如何包含和提交$ editcode。
echo form_open('/add', $formattributes);
echo form_hidden('editcode', set_value('editcode', $editcode));
echo form_submit('submit','Submit!','id="submit"');
add()函数代码($ refreshed_editcode与生成的原始$ editcode正面不同)。
...
$data['editcode'] = $refreshed_editcode;
$this->load->view('includes/template', $data);
当add()函数重新绘制视图时,$ editcode值应为$ refreshed_editcode,但它仍然是原始值。
我知道CodeIgniter为嵌套视图做了一些变量缓存,但是在这种情况下我明确地重新发送$ editcode变量的新值。是什么给了什么?
答案 0 :(得分:1)
尝试摆脱对set_value的调用。由于表单字段是隐藏的,它实际上不应该给你带来太多好处,我怀疑这就是“缓存”发生的地方(如果我没弄错,那个函数是form_helpers文件的一部分,它实际上是设计的缓存以帮助重新填充数据,但自从我使用它以来已经有一段时间了。