我有以下循环,它从数据库创建一个列表:
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的观点,因为我在看到他的回答之前也有同样的问题。
-
假设这是你打算循环的项目(即你已经从你的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>
-
这是你的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'); } }); }
-
和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' ... }
-
如果你不这样做,你可能会遇到DELETE ACTION被触发两次。
不要感谢我,感谢@sumurai8把我从沉睡中唤醒;)
快乐编码。