我正在为php / mysql eshop构建一个页面,其中我显示所有产品的列表,其中包含price []的文本框,另一个用于special_offer_price [],另一个用于复选(homepage [])以供选择要在主页上显示的产品。此页面用于批量更新价格,以便店主可以使用单个页面更新所有产品的价格,而不是逐个进入每个产品。
问题是该商店有大约500种产品,所以我将500x4 = 2000的帖子值发布到更新产品的页面。我对帖子的PHP限制是1000个值,是否有更好的方法来限制我的帖子?
答案 0 :(得分:1)
至于使用javascript只发送修改过的数据:
第1步:发出原始值
<input type="hidden" id="price1_original" value="3.5" />
<input type="text" id="price1" class="price" value="3.5" />
第2步:在表单提交处理程序中,只选择已更改的
changed = $('.price').filter(function() {
var original = $('#' + this.id + '_original').val();
return this.val() != original;
});
第3步:准备并发送AJAX请求
$.post('/change_price.php', {prices : data}, function(response) {
// handle response
});
第4步:盈利! : - )
UPD:另一种解决方案是在用户更改值并将焦点转移到其他位置时立即发送更改。
$('.price').change(function() {
// validate input
// post this single price change to server
});
答案 1 :(得分:0)
在同一页面上显示所有记录通常是个坏主意。在页面中打破该产品列表并显示(例如)每页最多50个产品。提供导航到第一页/上一页/下一页/最后一页等。
您可以将其与文本过滤结合使用。
通过这种方式,您可以获得可预测的系统性能和行为。
答案 2 :(得分:0)
如果您确实需要一次显示所有产品,可以在需要时通过javascript动态创建输入。您的数据可以是显示在附加了点击处理程序的<div>
中;当用户单击该div时,div将转换为输入。这样,您甚至只需要传输那些被修改过的字段!并且您可以计算有多少输入并将该数量限制为PHP帖子限制...