需要target 'delete'按钮到PHP中从while循环中流出的元素


need to target 'delete' button to elements pouring out of a while loop in PHP

我有以下循环,它从数据库创建一个列表:

for ($i=0;$i<count($tutor_subj);$i++){
$query_tutors = "SELECT level, subject FROM level, subject WHERE level.id = '$tutor_lvl[$i]' AND subject.id = '$tutor_subj[$i]'";       
$result_t = mysqli_query($db_conx, $query_tutors);
    while($m = mysqli_fetch_array($result_t)){
    echo $m['level']." ".$m['subject']." ".$tutor_top[$i]."<div style='float:right; padding-right:5px;'><a href='#'><img src='images/remove_btn.png' onclick='removeSubj'></a></div></br>";
        }
    }
?>

正如你所看到的,我在每个条目之后的html中添加了一个"删除"按钮,我想使用这个按钮允许用户从数据库中删除特定的数据行,如果他们选择的话。

我的问题是如何将行从这个while循环链接到每行末尾生成的按钮(以便在DB中删除适当的条目)?

PS -我还没有写javascript/jquery函数removeSubj,因为我卡住了,因此不包括

onclick='removeSubj'添加唯一标识符,以便在调用它时,可以确定要删除的内容。你可以用onclick='removeSubj("unique_identifier")'。将该unique_identifier替换为数据库中每行始终唯一的内容(例如id-field)。

你可以在你的javascript函数中使用这个值,最后在你的服务器端脚本中,删除正确的行

让我给你一个例子来支持@sumurai8s的观点,因为我在看到他的回答之前也有同样的问题。

  1. 假设这是你打算循环的项目(即你已经从你的php/database循环动态生成了这个)

    <div class="media-body media-right">
    <span onclick="delete(<?php echo $fromDb['id']; ?>);" class="icon icon-trash-o icon-3x text-blood pull-lg-right"></span>
    </div>
    
  2. 这是你的java脚本应该是

    //delete
    function delete(I) {
        // delete methodology
                var id_to_be_deleted = I;
                var formData = new FormData();
                formData.append("id_to_be_deleted", id_to_be_deleted);
                $.ajax({
                    type: "POST",
                    url: "/delete.php",
                    contentType: false,
                    processData: false,
                    //contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    data : formData,
                    success: function()
                    { 
                    alert('successs');
                    }
                    });
                   }
    
  3. delete.php应该是

    <?php
    if ($_POST['id_to_be_deleted']) {
    $delete = $_POST['id_to_be_deleted'];
    //do db delete query here i.e DELETE FROM table_name WHERE id='$id_to_be_deleted'
    ...
    }
    
  4. 如果你不这样做,你可能会遇到DELETE ACTION被触发两次。

不要感谢我,感谢@sumurai8把我从沉睡中唤醒;)

快乐编码。