2017-03-24 104 views
1

我是一个完整的初学者,并使用PHP/jQuery构建了一个基本的待办事项列表应用程序。该应用程序允许用户添加和删除列表中的任务(存储在MySQL数据库中)。删除的行从页面中删除,但不是从MySQL数据库(PHP/jQuery)

我遇到了删除功能的问题。当点击删除按钮时,它将从列表中删除该任务,但它必须保留在数据库中,因为一旦页面刷新,它就会重新出现。

我不知道我哪里出错了!任何帮助赞赏。请参见下面的代码:

的index.php

<!DOCTYPE html> 

<html> 

<head> 
    <title>To-Do List</title> 
    <link rel="stylesheet" type="text/css" href="/style.css" media="all" /> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
</head> 

<body> 
    <div class="main"> 
     <div class="list"> 
      <ul> 
       <?php 
        require("db_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['task_id']; 
          $task_desc = $row['task_desc']; 

          echo '<li><span>'.$task_desc.'</span><img id="'.$task_id.'" class="delete" width="10px" src="images/delete.png" /></li>'; 
         } 
        } 
       ?> 
      </ul> 
     </div> 
     <form class="new" autocomplete="off"> 
      <input type="text" name="new-task" placeholder="Add a new task..." /> 
     </form> 
    </div> 
</body> 

<script> 
    add_task(); 
    delete_task(); 

    function add_task() { 
     $('.new').submit(function() { 
      var new_task = $('.new input[name=new-task]').val(); 

      if(new_task !== '') { 
       $.post('add_task.php', { task: new_task }, function (data) { 
        $('.new input[name=new-task]').val(''); 
        $(data).appendTo('.list ul').hide().fadeIn(); 
        delete_task(); 
       }); 
      } 
      return false; 
     }); 
    } 

    function delete_task() { 
     $('.delete').click(function() { 
      var current_element = $(this); 
      var task_id = $(this).attr('task_id'); 

      $.post('delete_task.php', { task_id: task_id }, function() { 
       current_element.parent().hide().fadeOut("fast", function() { 
        $(this).remove(); 
       }); 
      }); 
     }); 
    } 
</script> 

delete_task.php

<?php 
    $task_id = strip_tags($_POST['task_id']); 
    require("db_connect.php"); 
    mysql_query("DELETE FROM tasks WHERE task_id='$task_id'"); 
?> 
+1

检查您的删除和检查的mysql_query结果如果task_id被正确提交 –

+0

那你为什么写删除查询。如果status = 0,则不要删除放置状态标志意味着删除。状态= 1意味着有效。写一个更新查询,而不是删除 –

+1

Mysql自PHP 7以来一直被删除,你应该真的开始使用Mysqli或PDO – Shogunivar

回答

2

你在你的delete_task功能有一个错误。没有像'task_id'这样的属性。尝试更换

var task_id = $(this).attr('task_id'); 

随着

var task_id = $(this).attr('id'); 
0

除了@IvanGajic答案是正确的,也是写你这样删除查询:

mysql_query('DELETE FROM tasks WHERE task_id="' . $task_id . '"');