2017-03-24 105 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 . '"');