JQuery Post с PHP SQL-запросов

0

Привет, мне было интересно, может ли кто-нибудь помочь мне. У меня есть персональный проект PHP TODO List, который я могу ввести в задачу, а затем нажав "Enter", задача автоматически добавляется в список. Существует функция удаления этих taks и 2 вкладок для просмотра текущих задач, а другая - для просмотра архива удаленных (или завершенных) задач.

Как только я выполнил вкладки, моя функция удаления перестала работать. Я предполагаю, что это имеет какое-то отношение к тому, где размещается view.task.php. Ниже приведены мои функции jQuery для показа задач/архива, а также функция удаления.

function delete_task() {
    $.get('includes/view-task.php'); 

    $('.delete-button').click( function(){

        var current_element = $(this);
        var id = $(this).attr('id');

        $.post('includes/delete-task.php', { task_id: id }, function() {
            current_element.parent().fadeOut("fast", function() { $(this).remove(); });
            alert('it worked');
        });
    });
}

function show_tasks() {
    $('.task-button').click(function(){
        var current_element = $(this);
        var id = $(this).attr('id');       

        $.post('includes/view-task.php' , function(task) {
            $(task).appendTo('.todo-list ul').hide().fadeIn(); 
        });

        $('.archive-item').fadeOut("slow", function() { $('.archive-item').remove(); });
        $('.task-button').attr('disabled','disabled');     
        $('.archive-button').attr('disabled',false);
    });
 }

Вот мой php-сценарий задачи:

<?php
    require("connect.php");
    $query = mysql_query("SELECT * FROM tasks ORDER BY date ASC, time ASC");
    $numrows = mysql_num_rows($query);

    if($numrows>0){
        while( $row = mysql_fetch_assoc( $query ) ){

            $task_id = $row['id'];
            $task_name = $row['task'];

            echo '<li class="task-item">
                        <span>'.$task_name.'</span>
                <img id="'.$task_id.'" class="delete-button" width="10px" src="images/close.svg" />
              </li>';
        }
    }
?>

Список todo в настоящее время загружен на сайт http://derekonay.com/todo Заранее спасибо за помощь.

  • 0
    Ваш код jquery заключен в $(document).ready(function() { ... }); или что-то эквивалентное?
  • 0
    Не сейчас, у меня есть все мои функции в файле functions.js, который я включаю перед закрывающим тегом body. И в верхней части файла я вызываю все 4 из моих функций: add_task () ;, delete_task () ;, show_tasks (); и show_archive ();
Показать ещё 3 комментария
Теги:

1 ответ

0

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

<script type="text/javascript">

$(document).ready(function()
{
    $.get('includes/view-task.php'); 

    $('.delete-button').click( function(){

        var current_element = $(this);
        var id = $(this).attr('id');

        $.post('includes/delete-task.php', { task_id: id }, function() {
            current_element.parent().fadeOut("fast", function() { $(this).remove(); });
            alert('it worked');
        });
    });

    $('.task-button').click(function(){
        var current_element = $(this);
        var id = $(this).attr('id');       

        $.post('includes/view-task.php' , function(task) {
            $(task).appendTo('.todo-list ul').hide().fadeIn(); 
        });

        $('.archive-item').fadeOut("slow", function() { $('.archive-item').remove(); });
        $('.task-button').attr('disabled','disabled');     
        $('.archive-button').attr('disabled',false);
    });

});

</script>
  • 0
    Я думаю, что мне просто нужно немного поработать над своим кодом, чтобы действительно найти проблему, поскольку одно это не решает проблему. Когда кнопка удаления работала, я включил php для show-tasks на моей HTML-странице, но теперь, когда я вызываю php-скрипт одним щелчком, удаление перестало работать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню