Я хотел бы сделать что-то похожее на Zendesk.
Вы нажимаете кнопку «Изменить порядок», и когда вы закончите, скажите «Сохранить заказ» или что-то в этом роде. Это могут быть призывы Ajax, чтобы сделать его более удобным для использования, но также могут обновлять страницы, что позволяет грациозно разлагаться.
Так что будет какая-то вещь, как:
<ul>
<li><input type="hidden" name="item1" value="1" />Item 1</li>
<li><input type="hidden" name="item2" value="2" />Item 2</li>
<li><input type="hidden" name="item3" value="3" />Item 3</li>
<li><input type="hidden" name="item4" value="4" />Item 4</li>
</ul>
При перемещении предметов вокруг, это изменило бы значение скрытого поля. Когда вы публикуете это, вы можете использовать эти значения в инструкции обновления, делая только один вызов. Что-то вроде:
UPDATE `things` SET `order` = $value WHERE `name` = $name;
Это не может быть эффективным в этом случае было бы 4 заявления SQL, хотя там может быть другой способ решения этой проблемы.
Я думаю, что главное преимущество в том, что у вас всегда будет логический порядок 1,2,3,4 вместо всего остального, если ваш JavaScript хорошо написан.
да, но тогда мне придется пересчитывать порядок для всех элементов каждый раз, я не уверен, что хочу сделать это – DFectuoso
, вам придется обновлять заказ каждый раз, когда вы делаете перетаскивание. Всякий раз, когда вы снова загружаете веб-страницу (на каждом компьютере), вы заказываете ее по новому порядку. Дело в том, что вы не можете хранить его в cookie, потому что это что-то постоянное. – fesja
Я знаю, что мне нужно что-то хранить в db, но я мог хранить порядок всего списка (разделенный запятой) в другой таблице и всякий раз, когда php загружает эти значения, просто сортирует их по порядку списка, но я хочу знать, есть ли у кого-то другая идея. – DFectuoso