嗨我试图删除使用与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');
?>
感谢您的帮助
答案 0 :(得分:2)
您继续使用新的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_*
个功能不再支持,它们为officially deprecated,不再维护,将为removed个未来。您应该使用PDO或MySQLi更新代码,以确保将来的项目功能。
答案 1 :(得分:-1)
您只需在页面末尾编写一次确认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;
}
}