2016-11-04 34 views
4

我想用ajax/jquery製作一個動態表。在php中使用ajax刪除函數

其他功能,如添加,更新正在工作,但我的刪除功能似乎不工作。我正在深入研究這個問題,但沒有結果。

下面是從數據庫中提取數據並形成表格的代碼片段。 每行都有更新/刪除按鈕,這些按鈕會導致相應的功能。

if(mysqli_num_rows($result) > 0) 
 
    { 
 
     $number = 1; 
 
     while($row = mysqli_fetch_assoc($result)) 
 
     { 
 
      $data .= '<tr> 
 
       <td>'.$number.'</td> 
 
       <td>'.$row['Surname'].'</td> 
 
       <td>'.$row['Name'].'</td> 
 
       <td>'.$row['Address'].'</td> 
 
       <td>'.$row['Telephone'].'</td> 
 
       <td>'.$row['PurchaseDate'].'</td> 
 
       <td>'.$row['Model'].'</td> 
 
       <td>'.$row['SerialNumber'].'</td> 
 
       <td>'.$row['Notes'].'</td> 
 
       <td> 
 
        <button onclick="GetUserDetails('.$row['id'].')" class="btn btn-warning">Update</button> 
 
       </td> 
 
       <td> 
 
        <button onclick="DeleteUser('.$row['id'].')" class="btn btn-danger">Delete</button> 
 
       </td> 
 
      </tr>'; 
 
      $number++; 
 
     } 
 
    }

這裏是我的刪除功能,它接收到來自它裝載來自數據庫表中的其他PHP行的ID。

刪除功能腳本

function DeleteUser(id) { 
 
    var conf = confirm("Are you sure, do you really want to delete User?"); 
 
    if (conf == true) { 
 
     $.post("ajax/deleteUser.php", { 
 
       id: id 
 
      }, 
 
      function (data, status) { 
 
       // reload Users by using readRecords(); 
 
       readRecords(); 
 
      } 
 
     ); 
 
    } 
 
}

deletefunction PHP

<?php 
 
// check request 
 
if(isset($_POST['id']) && isset($_POST['id']) != "") 
 
{ 
 
    // include Database connection file 
 
    include("db_connection.php"); 
 

 
    // get user id 
 
    $client_id = $_POST['id']; 
 

 
    // delete User 
 
    $query = "DELETE FROM Clients WHERE id = '$client_id'"; 
 
    if (!$result = mysqli_query($query)) { 
 
     exit(mysqli_error($result)); 
 
    } 
 
} 
 
?>

我甚至嘗試進入MySQL而不是mysqli,並以某種方式工作。我有點假設mysqli具有不同於mysql的功能?那麼我聽說mysql被棄用,但似乎我在這裏做錯了什麼...

我不擅長編程,我正在學習,因爲它成爲我的新愛好。任何提示都會很感激。

+1

嘗試改變'如果(isset($ _ POST [ '身份證'])&& isset($ _ POST [ '身份證'])!= 「」)'來'如果(isset ($ _POST ['id']))' –

+0

@RazibAlMamun之前試過,沒有工作。無論如何謝謝你的提示 – Woonghee

+0

因此,請求使它成爲'deletefunction.php',但'mysql'查詢失敗?你是對的,不要使用'mysql_ *'函數。這對當前的SQL注入是開放的。 – chris85

回答

3

mysqli_*是更加面向對象和MySQL的預定版本。

您需要連接ID傳遞給mysqli_query()

混合mysqli_query(mysqli的$鏈接,串$查詢[摘要$ resultmode = MYSQLI_STORE_RESULT])

因此,更正後的代碼:

if (!$result = mysqli_query($conn, $query)) { 
// Where $conn is the connection identifier. 

Documentation

0

這個查詢最後對我有效。

// delete User 
 
    $query = "DELETE FROM Clients WHERE id = '$client_id'"; 
 
    if (!$result = mysqli_query($GLOBALS["___mysqli_ston"], $query)) { 
 
     exit(((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false))); 
 
    }