0

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

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循环中的行链接到每行末尾生成的按钮(以便在数据库中删除相应的条目)?

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

4

2 回答 2

1

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

然后,您可以在 javascript 函数中使用此值,最后在服务器端脚本中使用该值来删除正确的行。

于 2013-06-16T16:40:25.627 回答
0

让我举个例子来支持@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 把我从沉睡中唤醒;)

快乐编码。

于 2017-06-27T19:16:06.240 回答