2011-12-16 2 views
0

Я строю страницу для php/mysql eshop, в которой я показываю список всех продуктов с текстовым полем для цены [], еще один для special_offer_price [] и установите флажок (домашняя страница []) рядом с каждым, чтобы выбрать продукты, которые будут отображаться на главной странице. Эта страница предназначена для пакетного обновления цен, чтобы владелец магазина мог обновлять цены для всех продуктов, используя одну страницу, а не входить в каждый продукт один за другим.Предельные значения PHP post, предложения, необходимые для ограничения моих сообщений

Проблема в том, что в магазине около 500 продуктов, поэтому я отправляю 500x4 = 2000 сообщений на страницу, которая обновляет продукты. Мой предел PHP для сообщений - 1000 значений, есть ли лучший способ ограничить мои сообщения?

+0

пейджинговый список продуктов вариант, так что у вас есть только 100 продуктов на странице? – codeling

+0

Мог бы сделать, но я бы предпочел не делать этого. – bikey77

+0

Вы также можете использовать javascript, чтобы опубликовать только те, которые изменились. –

ответ

0

Как правило, плохая идея отображать все записи на одной странице. Разбейте этот список продуктов на страницах и покажите (например) до 50 продуктов на страницу. Предоставьте навигацию по первой/предыдущей/следующей/последней странице и так далее.

Вы можете комбинировать это с текстовой фильтрацией.

Таким образом, у вас есть предсказуемая производительность и поведение системы.

+0

Как и выше, я предпочитаю не делать этого, но не то, что я не вижу вашей точки зрения, но, если это возможно, я хотел бы придерживаться оригинальной концепции. – bikey77

+0

Хорошо, я просто говорю :-) –

0

Если вам действительно нужно показывать все товары за один раз, вы можете создавать входы динамически, когда это необходимо, с помощью javascript. Ваши данные могут, например, будет отображаться в <div>, который имеет прикрепленный щелчок; и когда пользователь нажимает на этот div, div преобразуется во вход. Таким образом, вам нужно будет передать только те поля, которые были изменены! И вы могли бы посчитать, сколько входов есть и ограничить их число до вашего PHP предела пост ...

+0

Это хорошо. Однако в гипотетическом случае массового переназначения раздражает щелчок на каждом div, когда вы можете просто перебирать их. –

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

Для этого всегда можно использовать скрытый ввод :-) Обновлен код. –

Смежные вопросы