jquery сортируемое обновление базы данных с использованием coldfusion - PullRequest
1 голос
/ 06 июля 2011

Существует множество способов сделать это в PHP, но я не нашел ни одной публикации, которая бы делала это в Coldfusion с использованием jQuery.Если у вас есть ссылка, пожалуйста, поделитесь ею.В противном случае вот что я делаю:

У меня есть четыре раздела (первый, второй, третий, четвертый из-за отсутствия лучшего термина), и в каждом разделе есть список элементов (0-15 элементов в каждомраздел).Клиент должен иметь возможность сортировать элементы вручную (для этого я использую сортировку jQuery - только внутри раздела, а не между каждым разделом).Я не хочу давать пользователю дополнительный шаг, используя кнопку «Сохранить».Я хотел бы сохранить обновленный заказ в базе данных, когда элемент списка отброшен.У меня работает сортировочная часть, и теперь мне нужно обновить базу данных mssql новым порядком, и у меня возникают проблемы при разработке цикла.

Используя FF firebug, это то, что передается через почту иrecordsArray [] - это то, что я не могу понять, как зацикливаться:

recordsArray[]=1&recordsArray[]=3&recordsArray[]=2&action=updateRecordsListings

Ваша помощь будет принята.

Ответы [ 2 ]

1 голос
/ 11 апреля 2016

Я подумал, что смогу пометить это как правильный ответ: 4 года спустя, и он все еще работает как чемпион: http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/285

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

Сводка: В случае разрыва ссылки в блоге показано, как использовать ajax для передачи отсортированного списка идентификаторов, например id_5,id_1,id_3,id_2..., в CFC. CFC проходит по списку, извлекает значения идентификатора и использует текущую позицию списка в качестве «порядка сортировки». Затем отдельные записи обновляются, а все удаленные идентификаторы удаляются. Смотрите запись в блоге для полного примера.

<cftransaction>

    <cfloop list="#arguments.orderedList#" index="ndx">

        <cfset id = Val( ListLast( ndx, "_" ) )>
        <cfset position = position+1>
        <cfset updatedids = ListAppend( updatedids, id )>

        <cfquery datasource="mydsn">
            update myTable 
            set  order = <cfqueryparam value="#position#" cfsqltype="cf_sql_integer">
            where id = <cfqueryparam value="#id#" cfsqltype="cf_sql_integer">
        </cfquery>

    </cfloop>

    <!--- delete any items not in the list --->
    <cfquery datasource="mydsn">
        delete from myTable
        where id not in ( <cfqueryparam value="#updatedids#" cfsqltype="cf_sql_integer" list="true"> )
    </cfquery>

</cftransaction>
1 голос
/ 06 июля 2011

Я написал две записи в блоге, которые в разной степени соответствуют этому.

Сначала используются таблицы данных и перетаскивание:

http://www.mccran.co.uk/index.cfm/2011/5/15/Combining-JQuery-Datatable-with-drag-and-drop-functions

Второй, которыйЯ думаю, что ближе к тому, что вы хотите, это приложение перетаскивания на стороне сервера:

http://www.mccran.co.uk/index.cfm/2011/6/17/JQuery-Sortable-Drag-and-Drop-lists-and-a-server-side-AJAX-save

Оно показывает, как вы можете перетаскивать элементы и использовать запрос ajax для сохранения данных..

...