Как обновить порядок сортировки при использовании входной последовательности? - PullRequest
0 голосов
/ 12 июля 2011

Я хочу разрешить пользователям переставлять элементы, указав номер.Таким образом, если имеется 5 элементов

Id, Item, Display Order 
1, Item a, 1
2, Item b, 2
3, Item c, 3
4, Item d, 4
5, Item e, 5

, пользователи получают 5 полей ввода и могут указать номер и нажать кнопку «Обновить», чтобы изменить порядок элементов.Если пользователь вводит 125 в качестве новой позиции в приведенном выше примере, он просто устанавливает ее как максимум (что равно 5) и обновляет другие элементы, если пользователь вводит -10, он просто делает этот элемент равным 1 и обновляет другие.

Я просто не могу понять, как обновить заказ после того, как пользователь отправит форму.любая помощь будет оценена.Спасибо

ОБНОВЛЕНИЕ

Используя данные выше, я предоставляю пользователю 5 строк с 5 полями ввода, в которых значение display_order является значением по умолчанию.Если пользователь желает изменить порядок списка, он может обновить значение в поле ввода и нажать кнопку «Отправить», чтобы обновить базу данных.Я использую запрос ORDER BY displayorder, чтобы перечислить reocrds.

Любые вопросы, пожалуйста, задавайте

Ответы [ 2 ]

2 голосов
/ 12 июля 2011

Как насчет формы примерно так:

<form ...>
<table>
<tr>
   <th>Item A</th>
   <td><input type="text" name="order[1]" value="1" /></td>
</tr>
<tr>
   <th>Item B</th>
   <td><input type="text" name="order[2]" value="2" /></td>
</tr>
etc...

Значение индекса в массиве поля имени является идентификатором этого конкретного элемента. Когда форма отправлена, вы должны сделать что-то вроде:

foreach($_POST['order'] as $key => $val) {
   $val = intval($val);
   $key = intval($key);
   $sql = "UPDATE yourtable SET DisplayOrder=$val WHERE id=$key;";
   mysql_query($sql) or die(mysql_error());
}

Тогда для поиска это будет просто:

SELECT ...
FROM yourtable
ORDER BY DisplayOrder ASC

Пользователь вводит любое число, которое хочет, и он должен убедиться, что он идет в правильном порядке. Ваш скрипт просто должен записать эти числа и отсортировать их во время поиска.

1 голос
/ 13 июля 2011

Почему бы вам просто не использовать jQuery Sortable. Намного проще, удобнее для пользователя, и у вас не будет проблемы с «дублирующимися значениями заказа».

http://jqueryui.com/demos/sortable/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...