2011-12-16 86 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 
});