在页面刷新之前,Ajax请求不会更新数据库

乔里·史密斯(JoeriSmits)

我正在为要创建的仪表板系统创建待办事项列表。 查看待办事项清单

因此,想法是用户可以添加新的待办事项,删除待办事项以及完成/未完成的待办事项。我正在使用codeIgniter进行此项目。

问题是,当我添加任务时,它会添加到数据库中,但是当我在此之后删除它或完成它时,它尚未在数据库中更新。仅当我刷新页面并删除任务或在数据库中对其进行更新之后完成任务时。我已经检查了数据,并将其成功发送到控制器以及从控制器发送到模型。由于某种原因,它只是没有在数据库中得到更新。

我正在使用AJAX发布请求将所有数据发送到codeigniter控制器。

$(document).ready(function () {
runBind();
function runBind() {

    /**
     * Deletes a task in the To Do list
     */
    $('.destroy').on('click', function (e) {
        var $currentListItem = $(this).closest('li');
        var $currentListItemLabel = $currentListItem.find('label');
        $('#main-content').trigger('heightChange');
        $.ajax({
            url: 'dashboard/deleteToDo',
            type: 'post',
            data: 'message=' + $currentListItemLabel.text()
        }).success(function (data) {
            $currentListItem.remove();
        }).error(function () {
            alert("Error deleting this item. This item was not deleted, please try again.");
        })
    });

    /**
     * Finish the to do task or unfinish it depending on the data attribute.
     */
    $('.toggle').on('ifClicked', function (e) {
        console.log("hallo");
        var $currentListItemLabel = $(this).closest('li').find('label');
        /*
         * Do this or add css and remove JS dynamic css.
         */
        if ($currentListItemLabel.attr('data') == 'done') {
            $.ajax({
                url: 'dashboard/finishToDo',
                type: 'post',
                data: 'message=' + $currentListItemLabel.text() + '&finish=' + false
            }).success(function (data) {
                console.log(data);
                $currentListItemLabel.attr('data', '');
                $currentListItemLabel.css('text-decoration', 'none');
            }).error(function () {
                alert("Error updating this item. This item was not updated, please try again.");
            })
        }
        else {
            $.ajax({
                url: 'dashboard/finishToDo',
                type: 'post',
                data: 'message=' + $currentListItemLabel.text() + '&finish=' + true
            }).success(function (data) {
                console.log(data);
                $currentListItemLabel.attr('data', 'done');
                $currentListItemLabel.css('text-decoration', 'line-through');
            }).error(function () {
                alert("Error updating this item. This item was not updated, please try again.");
            })
        }
    });
}

$todoList = $('#todo-list');

/**
 * Add a new To Do task.
 */
$("#frm_toDo").submit(function (e) {
    e.preventDefault();
    var url = $(this).attr('action');

    var method = $(this).attr('method');
    var data = $(this).serialize();
    $.ajax({
        url: url,
        type: method,
        data: data
    }).success(function (data) {
        addItemToHTMLList();
        $('#new-todo').val('');
    }).error(function () {
        alert("Error saving this task. This task has not been saved, please try again.");
    });
});

/**
 * Adds the task that has been created directly to the HTML page
 */
var addItemToHTMLList = function () {
    $('.destroy').off('click');
    $('.toggle').off('click');
    var todos = "";
    todos +=
        "<li>" +
        "<div class='view'>" +
            "<div class='row'>" +
                "<div class='col-xs-1'>" +
                    "<input class='toggle' type='checkbox'>" +
                "</div>" +
                "<div class='col-xs-10'>" +
                    "<label id='item'>" + " " + $('#new-todo').val() + "</label>" +
                "</div>" +
                "<div class='col-xs-1'>" +
                    "<a class='destroy'></a>" +
                "</div>" +
            "</div>" +
        "</div>" +
        "</li>" + $todoList.html();
    $todoList.html(todos);
    $todoList.find('input').iCheck({checkboxClass: 'icheckbox_flat-grey', radioClass: 'iradio_flat-grey'});
    runBind();
    $('#main').show();
}
});

如果您能帮助我,那太好了,因为我一无所知。我已经检查了所有数据,但是在页面刷新之前它并没有在数据库中得到更新。

苏门

您是否使用浏览器开发工具比较了XHR请求以确保它们100%等价(对于现有待办事项的删除还是对新添加的待办事项的删除)?

另外,典型的模式是使用某种ID而不是将整个消息用作匹配器-您是否考虑过对待办事项的ID执行结束/删除操作,而不是发送待办事项的文本?如果您不想公开数据库ID,则可以创建一个唯一ID。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在我刷新设置页面之前,laravel 不会更新数据

来自分类Dev

通过ajax更新数据库,而无需刷新页面codeigniter

来自分类Dev

ajax请求不会阻止页面刷新

来自分类Dev

除非刷新页面,否则数据不会插入数据库吗?

来自分类Dev

在Rails中使用Ajax请求更新数据库

来自分类Dev

连续添加| 更新| 将数据从数据库刷新到页面而无需回发

来自分类Dev

光滑的更新操作在对象刷新到数据库之前返回

来自分类Dev

数据库AJAX的后台刷新信息

来自分类Dev

jQuery在刷新页面之前等待AJAX请求完成

来自分类Dev

尽管数据库已成功更新,但删除行后表不会刷新

来自分类Dev

使用Jquery,Ajax提交表单而不刷新页面时无法读取数据库

来自分类Dev

会话过期后如何自动更新数据库而不刷新我的页面

来自分类Dev

成功更新数据库后,Blazor服务器页面无法刷新

来自分类Dev

在JavaScript中刷新页面后,如何更新数据库中表的星级?

来自分类Dev

如何在不刷新页面asp.net mvc的情况下使用ajax / javascript更新数据库

来自分类Dev

在MySQL数据库中更新后,配置文件页面不会更新

来自分类Dev

(ReactJS)即使数据库更新,页面上的项目列表也不会更新

来自分类Dev

Ajax仅在数据库表更新或更改时刷新

来自分类Dev

MySQL插入不会更新数据库

来自分类Dev

EntityFramework不会更新数据库

来自分类Dev

Aspx不会从Repeater更新数据库

来自分类Dev

Laravel失败的数据库更新请求

来自分类Dev

python数据库请求未更新

来自分类Dev

更新数据库而不用离开页面

来自分类Dev

jQuery:使用来自ajax请求的所有数据更新数据库

来自分类Dev

Ajax请求后页面刷新

来自分类Dev

Async/await 在继续之前不会等待数据库查询

来自分类Dev

在执行Ajax请求时如何实现进度条大量的数据库更新

来自分类Dev

gmaps4rails-从地图上的数据库动态更新标记,而无需刷新页面

Related 相关文章

  1. 1

    在我刷新设置页面之前,laravel 不会更新数据

  2. 2

    通过ajax更新数据库,而无需刷新页面codeigniter

  3. 3

    ajax请求不会阻止页面刷新

  4. 4

    除非刷新页面,否则数据不会插入数据库吗?

  5. 5

    在Rails中使用Ajax请求更新数据库

  6. 6

    连续添加| 更新| 将数据从数据库刷新到页面而无需回发

  7. 7

    光滑的更新操作在对象刷新到数据库之前返回

  8. 8

    数据库AJAX的后台刷新信息

  9. 9

    jQuery在刷新页面之前等待AJAX请求完成

  10. 10

    尽管数据库已成功更新,但删除行后表不会刷新

  11. 11

    使用Jquery,Ajax提交表单而不刷新页面时无法读取数据库

  12. 12

    会话过期后如何自动更新数据库而不刷新我的页面

  13. 13

    成功更新数据库后,Blazor服务器页面无法刷新

  14. 14

    在JavaScript中刷新页面后,如何更新数据库中表的星级?

  15. 15

    如何在不刷新页面asp.net mvc的情况下使用ajax / javascript更新数据库

  16. 16

    在MySQL数据库中更新后,配置文件页面不会更新

  17. 17

    (ReactJS)即使数据库更新,页面上的项目列表也不会更新

  18. 18

    Ajax仅在数据库表更新或更改时刷新

  19. 19

    MySQL插入不会更新数据库

  20. 20

    EntityFramework不会更新数据库

  21. 21

    Aspx不会从Repeater更新数据库

  22. 22

    Laravel失败的数据库更新请求

  23. 23

    python数据库请求未更新

  24. 24

    更新数据库而不用离开页面

  25. 25

    jQuery:使用来自ajax请求的所有数据更新数据库

  26. 26

    Ajax请求后页面刷新

  27. 27

    Async/await 在继续之前不会等待数据库查询

  28. 28

    在执行Ajax请求时如何实现进度条大量的数据库更新

  29. 29

    gmaps4rails-从地图上的数据库动态更新标记,而无需刷新页面

热门标签

归档