ColdFusion-подход для таблицы данных запроса и действий CRUD


Мой вопрос больше ориентирован на подход, чем на программирование или ошибки.

У меня есть запрос, который выполняет и собирает набор данных. Затем я хочу использовать возвращаемые значения этого запроса для построения таблицы на странице со списком всех значений. Наряду с этим мне нужно иметь некоторые действия с каждым значением, например:

my_val (edit) (delete)
my_cal (edit) (delete)

Где edit и delete-кнопки. Так что кнопка edit у меня работает с onClick javascript, где я перенаправлен на другую страницу, но кнопка delete у меня есть. нужно, чтобы сделать три вещи:

  1. подскажите пользователю, можно удалить? msg (используя javascript для этого (подтверждение возврата...).
  2. выполнить запрос на удаление
  3. обновить страницу (self)

Существует ли наилучшая модель подхода для этого? Проще ли вызвать две встроенные команды javascript? Использовать функции javascript? Может быть, функция Колдфузии?

Любые указатели были бы полезны! спасибо.

4 2

4 ответа:

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

YourPage.cfm
<cfif structKeyExists(URL, "Action") and URL.Action eq "delete">
    <cfququery>
       // delete the item using the id provided
    </cfquery>
</cfif>

<cfquery name="GetFresh">
    // get fresh info
</cfquery>

<cfloop query="GetFresh">
    Something <span class='DeleteLink' data-someid='#SomeID#'>delete</span> <br>
</cfloop>

<script type='text/javascript'>

    $DeleteLinks = $("span.DeleteLink");

    $DeleteLink.click(function() {
        var Confirm = confirm('Are you sure you want to delete?');
        if (Confirm == true) {
           var SomeID = $(this).data("someid");
           var URL = "YourPage.cfm?Action=delete&SomeID=" + SomeID;
           window.location = URL;
        }
    });
</script>

Я думаю, вы близки к тому, что ищете.

Способ, которым я бы сделал удаление, заключается в подтверждении в JS, затем просто отправьте запрос на другую страницу, которая выполняет процесс удаления, а затем отправляет вашего пользователя обратно на исходную страницу (давая вам обновление).

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

Самый простой и быстрый способ-это просто иметь обработчик onclick, который возвращает true / false на основе выбора пользователя

    <a href="delete.cfm?id=1" onclick="return confirm('Are you sure you want to delete his?')">Delete</a> 
Есть, конечно, гораздо более элегантные способы сделать это, но вышесказанное является основным и работает.

Вот что я использую:

!function($, window, undefined) {
    var document = window.document;
    $(document).delegate('input:submit[name="Delete"][value="Delete"]','click',function() {
        return window.confirm(this.title || 'Delete this record?');
    });
}(jQuery, window);