我认为 IE 8 不喜欢链接中的 <input> 标记。您可以将 onclick 处理程序添加到“<a>”标签:
<?php echo '<td><a href="delete.php?staff_id=' . $row['staff_id'] . '" onclick="confirmDelete(event)">Delete</a></td>'; ?>
顺便说一句:你有两个“</td>”,一个在 php-block 之外。
编辑
第二个想法:由于删除操作会更改应用程序的状态,因此最好“发布”数据。所以更好的方法是:
<form action="delete.php" method="post" onsubmit="confirmDelete(event)">
<div>
<input type="hidden" name="staff_id" value="<?php echo $row['staff_id']; ?>" />
<input type="submit" name="submit" value="Delete" />
</div>
</form>
在 PHP 中,您可以通过 $_POST['staff_id'] 访问 staff_id。
编辑2:
更新了 javascript,两种方法(链接和按钮):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>test</title>
<script type="text/javascript">
//<![CDATA[
function confirmDelete() {
if (!confirm('Delete?')) {
return false;
}
return true;
}
//]]>
</script>
</head>
<body>
<h1>Version 1 (link)</h1>
<div>
<a href="delete.php?staff_id=1" onclick="return confirmDelete()">Delete</a>
</div>
<h1>Version 2 (button)</h1>
<form action="delete.php" method="post" onsubmit="return confirmDelete()">
<div>
<input type="hidden" name="staff_id" value="<?php echo $row['staff_id']; ?>" />
<input type="submit" name="submit" value="Delete" />
</div>
</form>
</body>
</html>
在 IE 7-10 和 FF 中测试。
问候,