[英]why delete button keeps deleting latest row php
您好,即时通讯正在尝试使用与php连接的确认脚本进行删除,但它始终会从我输入的最新行中删除,即时通讯已经在网上搜索了如何解决该问题,但是我似乎仍然不太了解其工作原理,这是我的代码
<?php
$query = "SELECT * FROM mspartner";
$sql=mysql_query($query);
?>
<table class="show_data" id="partner">
<tr>
<td>Partner ID</td>
<td>Partner name</td>
<td>addresses</td>
<td>Image</td>
<td>Delete/Edit</td>
</tr>
<?php
while($fetch=mysql_fetch_array($sql)){
?>
<tr>
<td> <?php echo $fetch['partnerID']; ?></td>
<td style="width:100px;"><?php echo $fetch['partnername']; ?></td>
<td><?php echo $fetch['address']; ?></td>
<td><?php echo $fetch['image']; ?></td>
<td>
<script>
function confirmation(){
var message = "are you sure?";
var konfirmasi = confirm(message);
if(konfirmasi == true) {
window.location="index.php?delete_partner=<?php echo $fetch['partnerID']; ?>";
}
else {
}
}
</script>
<input type="image" class="icon" src="images/asset/delete.jpg" onClick="confirmation() ">
这是我的PHP删除代码
<?php
$id = $_GET['delete_partner'];
$sql="DELETE FROM `mspartner` WHERE `partnerID` = '$id' ";
echo $sql;
$query = mysql_query($sql);
header('Location:index.php?partner');
?>
谢谢你的帮助
您一直用新的confirmation
功能替换您的confirmation
。
因此,无论何时运行,它只会运行最后一次迭代。
尝试像这样创建确认功能(通过传入ID):
function confirmation(id){
var message = "are you sure?";
var konfirmasi = confirm(message);
if(konfirmasi) {
window.location="index.php?delete_partner=" + id;
}
else {
// something else
}
}
侧面点:
不再支持
mysql_*
函数,它们已被正式弃用 , 不再维护 ,以后将被删除 。 您应该使用PDO或MySQLi更新代码,以确保将来项目的功能。
您只需在页面末尾编写一次确认js函数。 最好将它写在一个单独的js文件上,但这是另一个问题。 使确认功能采用一个参数,该参数具有要删除的记录的ID。
用以下代码替换调用该函数的代码:
onClick="confirmation('<?php echo $fetch['partnerID']; ?>')"
您的新确认功能应为:
function confirmation(recordId){
var message = "are you sure?";
var konfirmasi = confirm(message);
if(konfirmasi == true) {
window.location="index.php?delete_partner=" + recordId;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.