2017-09-26 9 views
0

から行を削除する私は関数を使用して削除機能を作成したいとjQueryjqueryのを使用してMySQLとPHP

私のjQueryの作品やショーのメッセージが、何も「何も削除された」と起こらない

のjQueryコード

<script type="text/javascript"> 
$(".remove").click(function(){ 
    var id = $(this).parents("tr").attr("id"); 

    if(confirm('Are you sure to remove this record?')) 
    { 
     $.ajax({ 
      url: 'delete.php', 
      type: 'GET', 
      data: {id: id}, 
      error: function() { 
       alert('Something is wrong'); 
      }, 
      success: function(data) { 
       $("#"+id).remove(); 
       alert("Record removed successfully"); 
      } 
     }); 
    } 
}); 

PHP関数のコード

function delete($table,$id) { 
    global $connect; 
    mysqli_query($connect, "DELETE FROM `$table` WHERE `id` = $id "); 
} 

Delete.phpコード

include ('function.php'); 
$id = $_GET['id']; 
$table = 'msg'; 
delete($table,$id); 

HTMLコード

<table class="table table-striped" style="background-color: #ffffff;"> 
    <tr> 
     <th>ID</th> 
     <th>From</th> 
     <th>Title</th> 
     <th>Date</th> 
     <th>Action</th> 
    </tr> 
    <?php 
    $i  = '1'; 
    $username = $user_data['username']; 
    $query = "SELECT * FROM msg WHERE `go_to` = '$username' Order by id"; 
    $result = mysqli_query($connect, $query); 

    while($row = mysqli_fetch_assoc($result)) 
    { 
     ?> 
     <tr> 
      <td><?php echo $i++; ?></td> 
      <td><?php echo $row['come_from']; ?></td> 
      <td> 
       <a href="read_message/<?php echo $row['id']; ?>"><?php if(count_msg_not_opened($username, $row['id']) > '0') 
        { 
         echo $row['title']; 
        } 
        else 
        { 
         echo '<b>' . $row['title'] . '</b>'; 
        } ?></a></td> 
      <td><?php echo $row['date']; ?></td> 
      <td> 
       <button class="btn btn-danger btn-sm remove">Delete</button> 
      </td> 
     </tr> 
    <?php } ?> 
</table> 

私はこのメッセージは、「あなたは表示されます一番下の "削除" を押すと、私はまた、 "jquery.min.js"

が含まれますこのレコードを必ず削除してください。

「はい」を押すと、このメッセージは「レコードが正常に削除されました」と表示されますが、何も削除されませんでした。

問題の原因はわかりません。

+0

PHPコードには、 'DELETE'が成功したのか、何かが削除されたのかをチェックするものは何もありません。 – Barmar

+0

あなたはもっと良くすることができます。 '0;を渡すと、ドロップテーブルmsg; 'idとして、すべての行が一度に削除されます! mysqliは使用しないでください。これまで代わりにPDOを使用し、SQLインジェクションを読み上げてください。 http://php.net/manual/en/book.pdo.php – Peter

+0

@Peterいいえ、そうではありません。動作させるには 'mysqli_multi_query()'を呼び出さなければなりません。 – Barmar

答えて

1

あなたはまた、あなたのPHPコードにエラーチェックと準備されたステートメントを追加する必要があります<tr>

<tr id="<?php echo $row['id']; ?>"> 

からid属性を追加するのを忘れ。

0

PHPコードをSQLデータベースに接続してもよろしいですか?

function delete($table,$id) { 
global $connect; 
mysqli_query($connect, "DELETE FROM `$table` WHERE `id` = $id "); 
} 

上記のコードは、PHPファイル内に既に存在する接続に依存しています。接続を適用する方法については、thisを参照してください。

関連する問題