我正在尝试通过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并重建?
或者我应该采用不同的方式进行比较?
答案 0 :(得分:0)
尝试将序列化对象存储在会话中,并在需要时再次序列化它。
http://php.net/manual/en/function.serialize.php
每次http请求后,PHP都不会为您提供实例。
我建议你使用隐藏字段,让事情变得更容易。在会话中存储这些序列化对象可能很难对您的应用进行故障排除。