显示可能通过 HTTP POST (PHP + MySQL) 更改的项目列表的最佳做法是啥
Posted
技术标签:
【中文标题】显示可能通过 HTTP POST (PHP + MySQL) 更改的项目列表的最佳做法是啥【英文标题】:What is the best practice to display a list of items that may change via HTTP POST (PHP + MySQL)显示可能通过 HTTP POST (PHP + MySQL) 更改的项目列表的最佳做法是什么 【发布时间】:2012-05-15 08:57:36 【问题描述】:我正在为自己创建一个库存系统,其中包含一个项目列表(包括描述、计数、最后使用日期等),其中还包含项目的状态。在最基本的层面上,我列出了 mysql 查询(SELECT * FROM Items)中的所有项目,以及它们在 SELECT html FORM 元素中的状态(int 数据类型,0/1/2 状态指示器)。
我希望能够更新此列表中的任何项目,而不必解析列出的每个项目并与 SQL 服务器的内容进行比较。我想这不是最佳实践,实现这一目标的更好方法是编译一个正在更改的项目列表并通过 HTTP POST 提交它们。它是否正确?实现这一目标的最佳方法是什么?
【问题讨论】:
这是一个很好的问题,但是我太忙(懒惰)来写它应得的答案 - 但你可能想看看 ORM 解决方案,这需要很多建造这种东西的痛苦。像这样的问题是一个很好的起点:***.com/questions/108699/good-php-orm-library 谢谢——我已经有一段时间没有编码了,我肯定与常见的做法脱节了。在一切都转向 OOP Java 之前,在高中/大学学习 C++,所以即使 PHP5 对我来说也是新的。我会阅读 ORM,尤其是 Doctrine 和 RedBean .. 他们似乎是最好的。 祝你好运!会说,看看你是否能找到一个你喜欢的参数化(即值的自动转义)(令人困惑的是,有些做参数化,但不是在所有情况下都实际转义,所以值得检查手册)。 Doctrine 的 ORM 可能很合适,但是有很多我犹豫要推荐一个具体的 :) 那么你想只更新一行吗?或者可能有任何已修改的行?如果像 ExtJS 网格编辑器这样的东西可能是一个不错的选择,它的存储可以让您找出修改过的记录。 【参考方案1】:使用 Ajax。干净简单。快速实现的方法是使用 JQuery。
<select id="target">
<option value="option1" selected="selected">Option 1</option>
<option value="option2">Option 2</option>
</select>
$('#target').change(function ()
$.ajax(
type: "POST",
url: "page.php",
data: 'id=something' ,
success: function (msg)
//after php response
);
);
见change和ajax
【讨论】:
以上是关于显示可能通过 HTTP POST (PHP + MySQL) 更改的项目列表的最佳做法是啥的主要内容,如果未能解决你的问题,请参考以下文章
php://input,$_POST,$HTTP_RAW_POST_DATA区别