我正在使用Joomla使用AJAX开发用户配置文件管理组件。
目标是允许用户编辑自己的用户信息。有很多信息,所以我决定制作“子表格”或部分,而不是有一个大型表格。为了整个用户友好,我想发送表单并使用AJAX刷新用户信息。
以下是一个例子:
有两个部分,“基本用户信息”,显示人员的名字,姓氏和年龄,以及显示职业,公司和人员技能的“扩展用户信息”。每个部分都有一个“编辑”链接(或按钮),它将内容转换为表单(AJAX),允许用户修改显示的信息。您一次只能编辑一个部分的信息。当用户完成数据修改后,他会发送带有“发送”链接(或按钮)的表单,然后该部分返回到只显示该部分的信息(包含刚刚进行的更新)。
所以我需要知道开发这样一个组件的最有效方法是什么。我想到了两种方法:
1)在主组件视图的“tmpl”目录中,我们有以下文件:
default_basic.php
(显示基本用户信息),default_basic_edit.php
(显示允许用户编辑基本信息的表单)default_extended.php
(显示扩展用户信息),default_extended_edit.php
(显示允许用户编辑扩展信息的表单)default.php
(通过调用JView::loadTemplate($subtemplate)
加载每个显示子模板)当用户点击编辑链接时,会对以下URI index.php?option=com_userinfo&view=userinfo&subview=basic_edit&format=ajax
进行AJAX调用,这会导致视图类在为其分配用户信息后调用$this->loadTemplate('basic_edit')
。
如果用户单击取消,则使用相同的过程再次加载“基本”模板。如果用户修改了信息并单击了发送链接,则会发送表单,然后加载“基本”模板。
2)“tmpl”目录中只有一个“default.php”文件,其中包含每个部分的编辑版本和显示版本。但所有编辑版本最初都是隐藏的。当用户点击编辑链接时,该部分的显示版本将被隐藏,并显示编辑版本(使用display:none和display:block)。然后,如果用户单击取消按钮,我们会执行相反的操作。如果用户单击发送按钮,我们会发送一个AJAX请求来更新数据库中的数据,并返回更新的用户信息,这些信息将被加载到该部分的显示版本中。我们最终用显示版本替换了该部分的编辑版本。
我知道有很多文字,但最后它选择用AJAX刷新完整的HTML块,或者只是发送更新的信息并修改隐藏块的内容然后让它们出现。因此,您认为我们处于Joomla 1.5环境中是最合乎逻辑的方法吗?你会怎么做? (也许有其他方法可以创建这样的组件?)
(我尝试了两种方式,但我无法完全实现它,所以我决定询问它是否是受孕的问题......)
感谢您抽出宝贵时间阅读所有文字。
答案 0 :(得分:0)
我的回答是:为什么即使没有它也可以刷新零件?
例如,当我们谈论基本表单元素(如文本字段和检查/单选按钮)时,我更喜欢以下内容:成功保存/发送只显示一条好消息,如“已保存配置文件”几秒钟,用户是确保更改是保存和声音。
如果我错过了什么,请告诉我。
答案 1 :(得分:0)
我尝试了两种解决方案,#2是唯一适合我的解决方案。