PHP中的可编辑表

时间:2010-12-14 09:15:43

标签: php ajax

在我正在构建的PHP应用程序中,我想要一个'可编辑'表。我们的想法是每行都有一个编辑按钮,单击该按钮时,将使用文本字段替换某些字段并选择列表并更改为保存按钮。当用户单击“保存”时,应验证并更改数据数据(如果适用)。

我主要是把它作为一个学习项目(我知道那里已经有很多东西了)并且看看我是否可以得到任何“酷”的工作。我创建了一个PHP表生成类,它可以将一个对象数组作为数据源,并且可以根据这些类方法创建列。

e.g。

$table = new Table($dataSource);
$table->addColumn('Name', 'getName');
$table->addColumn('Amount Due', array('getOrdersManager', 'getTotalAmountDue')); //First calls getOrdersManager() on each data item and then calls the getTotalAmountDue() on the result

我想尝试将其扩展为能够进行表格行并让这些更改反映在数据源中的相应对象上。

我对AJAX没有太多经验,尽管它显然会在让它正常工作方面发挥非常重要的作用。

关于如何处理此类任务的任何提示?

编辑:此时我对查看Ajax库并不是很有趣(我对jQuery有一些经验)。我现在对学习Ajax的基础知识更感兴趣。

2 个答案:

答案 0 :(得分:1)

我的提示是使用jquery(为你做大部分繁重的工作并且很容易学习)。

  

这个想法是每行都有一个   编辑按钮,单击时将显示   用文本替换某些字段   字段和选择列表并更改为   保存按钮

http://api.jquery.com/click/

  

当用户点击保存时,数据   数据应该被验证和更改   如果合适的话。

http://api.jquery.com/jQuery.post/

答案 1 :(得分:1)

要注意/思考的一些事情:

  • 您是要将每个字段更改发送到服务器,还是仅发送整行(后者更具资源效率,但不一定准确)
  • 即使服务器更新由于某种原因(网络故障或数据库/验证错误)失败,您如何确保显示的数据保持准确
  • 您如何确保用户有权更新记录,并且您不会通过允许AJAX响应者更新告知的任何记录来打开安全漏洞。我的方法是,如果在交互式表中显示记录,则用户有权更新它,因此创建表时会在会话中保存记录ID的缓存
  • 您要动态加载选项吗?如果不这样做,那么由于重复选择控件,长表最终可能会包含大量HTML,但同样,每次用户单击下拉列表时都不会产生请求,从而提高资源效率。一个折衷方案可能是将选项放入隐藏的HTML字段,并在用户单击下拉列表时将其动态加载到正确的位置