2011-12-16 32 views
0

我正在为php/mysql eshop构建一个页面,其中显示了所有带有用于价格[的文本框]的产品的列表,另一个用于special_offer_price []和复选框(主页[]),以选择要显示在主页上的产品。此页面用于批量更新价格,以便商店所有者可以使用单个页面更新所有产品的价格,而不是逐个进入每个产品。PHP后限制值,限制我的帖子所需的建议

问题是,该商店有大约500个产品,因此我将500x4 = 2000个发布值发布到更新产品的页面。我的PHP的帖子限制是1000个值,有没有更好的方式可以用来限制我的帖子?

+0

是分页的产品清单的一个选项,所以你只有每页100个产品? – codeling 2011-12-16 10:55:58

+0

可以但我不想。 – bikey77 2011-12-16 10:56:36

+0

您也可以使用javascript来发布已更改的内容。 – 2011-12-16 10:57:53

回答

0

在同一页面上显示所有记录通常是一个坏主意。将产品列表分页并显示(例如)每页最多50个产品。提供导航到第一页/上一页/下一页/最后一页等等。

您可以将其与文本过滤结合使用。

这样你就可以预测系统的性能和行为。

0

如果您确实需要一次显示所有产品,则可以在需要时通过javascript动态创建输入。您的数据可能会被显示在<div>中,其具有附加的点击处理程序;并且当用户点击该div时,div被转换为输入。这样,你甚至只需要传输那些被修改的字段!你能数多少的投入也有和限制,这个数字将你的PHP后限制...

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 
});