调用Codeigniter方法URI而不重构类

时间:2013-07-26 23:01:46

标签: php jquery ajax codeigniter uri

我正在尝试通过jQuery .load函数调用Codeigniter URI而不重构类实例。

原始URI段如下:/culture/edit/190

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

提交表单会调用类似于/culture/do_edit的URI,它会从可能更改的表单中接收帖子数据,然后准备插入语句。

我需要检查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,实际传递该方法编辑参数do_edit

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

我可以通过帖子传递隐藏输入中的原始ID,但如果可以避免,我宁愿不添加额外的输入。有没有办法调用方法而不爬过整个URI并重建?

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

1 个答案:

答案 0 :(得分:0)

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

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

每次http请求后,PHP都不会为您提供实例。

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