调用Codeigniter方法URI而不重建类


Calling Codeigniter Method URI without reconstructing class

我试图通过jQuery.load函数调用Codeigniter URI,而不重建类实例。

原始的URI段如下所示:/culture/edit/190

这个初始调用使用预先加载了ID信息的输入构建了一个表单。我存储了受保护类变量(由$this->editIds调用)中涉及的各种表的初始行ID,以便稍后将提交的表单与原始ID进行比较,查看它们是否发生了更改。

提交表单会调用一个URI,如:/culture/do_edit,它从可能更改的表单中接收post数据,然后准备insert语句。

我需要检查ID以确保(如果它们被更改)用户没有试图复制ID。如果ID被更改为一个唯一值(如果有的话),则该记录的ID将被更改而不会受到投诉;如果它根本没有改变,那么它可以轻松地继续下去。

问题(我认为)是类被重新构造,并且我丢失了之前变量集中的原始数据,因为do_edit将变量视为空(初始构造函数状态)。

我试着改变ajax方法的调用方式:

$('#message').load('/culture/do_edit', data);

从而产生URI:/culture/do_edit并重构该类。

$('#message').load('do_edit', data);

这导致URI /culture/edit/do_edit,该URI实际上通过方法编辑参数do_edit

我想保留类实例,以便可以比较原始ID。

我可以在帖子的隐藏输入中传递原始ID,但如果可以避免的话,我宁愿不添加额外的输入。有没有一种方法可以在不遍历整个URI和重建的情况下调用方法?

或者我应该用不同的方式进行比较?

尝试将序列化的对象存储在会话中,并在再次需要时取消序列化。

http://php.net/manual/en/function.serialize.php

PHP不会在每次http请求后为您保留可用的实例。

我建议您使用隐藏字段,使事情变得更容易。在会话中存储这些序列化的对象可能很难对应用程序进行故障排除。