• Как сделать динамическое добавление на ajax, чтобы записи не дублировались?

    grantur5707
    @grantur5707
    Full Stack Web Developer
    1. Используй метод .off() для удаления предыдущих обработчиков событий перед добавлением нового.
    2. Исправь код AJAX, чтобы ограничить количество перерисовок элементов.

    $("#modal").off('submit').on('submit', function (e) { 
        e.preventDefault();
        var form_data = $(this).serialize();
    
        $.ajax({
            type: "POST",
            url: "user/add.php",
            data: form_data,
            success: function (html) {
                document.getElementById("shadow").style.display = "none";
                document.getElementById("modal").style.display = "none";
                $('#modal').trigger('reset');
                $("#main").append(html);
            }
        });
    });


    add.php:

    require "../database/Task.php";
    
    if (isset($_POST['title']) && isset($_POST['description'])) {
        $task_mess = new Task;
        $task_mess->add_task($_POST['title'], $_POST['description']);
    
        $new_task = $task_mess->get_last_task();
    
        echo "<div class='task'>
                <h3>{$new_task['title']}</h3>
                <p>{$new_task['description']}</p>
              </div>";
    }
    Ответ написан
    2 комментария